《從零開始學Swift》學習筆記(Day 19)——函式引數傳遞
《從零開始學Swift》學習筆記(Day 19)——函式引數傳遞 原創文章,歡迎轉載。轉載請註明:關東昇的部落格
函式的語法格式如下:
func 函式名(引數列表) -> 返回值型別 {
語句組
return 返回值
}
關鍵字是func。
多個引數列表之間可以用逗號(,)分隔,也可以沒有引數。
使用箭頭“->”指示返回值型別。返回值有單個值和多個值。如果函式沒有返回值,則“-> 返回值型別”部分可以省略。
如果函式有返回值,就需要在函式體最後使用return語句;如果沒有返回值,則函式體中可以省略return語句。
函式定義示例程式碼如下:
func rectangleArea(width:Double, height:Double) -> Double {
let area = width * height
return area
}
print("320x480的長方形的面積:\(rectangleArea(320, height: 480))")
傳遞引數
介紹幾種不同形式的引數。
1、使用外部引數名
為每個引數提供一個可以在函式外部使用的名稱,稱為外部引數名,修改rectangleArea函式的定義如下:
func rectangleArea(W width:Double, H height:Double) -> Double {
let area = width * height
return area
}
在區域性引數名之前給一個“外部引數名”,用空格分隔。定義程式碼中的W和H就是外部引數名。呼叫程式碼如下:
print("320x480的長方形的面積:(rectangleArea(W:320, H:480))")
如果我們提供了外部引數名,那麼在函式呼叫時,必須使用外部引數名,所以W和H不能省略。
2、省略外部引數名
Swift 2.0提供省略外部引數名可能,在定義函式時,使用下劃線(_)表示外部引數名,示例程式碼如下:
func rectangleArea(width:Double, _ height:Double) -> Double {
let area = width * height
return area
}
這樣函式在呼叫時就可以省略外部引數名,程式碼如下:
print("320x480的長方形的面積:(rectangleArea(320, 480))")
在定義函式時第一個引數不需要使用下劃線(),預設第一個引數名是省略的,其他引數名要想省略則需要使用下劃線()符號。
3、 引數預設值
在定義函式的時候可以為引數設定一個預設值,當呼叫函式的時候可以忽略該引數。看下面的一個示例:
func makecoffee(type : String = "卡布奇諾") -> String {
return "製作一杯\(type)咖啡。"
}
在呼叫的時候,如果呼叫者沒有傳遞引數,則使用預設值。呼叫程式碼如下:
let coffee1 = makecoffee("拿鐵")
let coffee2 = makecoffee()
最後輸出結果如下:
製作一杯拿鐵咖啡。
製作一杯卡布奇諾咖啡。
4、可變引數
Swift中函式的引數個數可以變A化,它可以接受不確定數量的輸入型別引數,它們具有相同的型別。我們可以通過在引數型別名後面加入(...)的方式來指示這是可變引數。
下面看一個示例:
func sum(numbers: Double...) -> Double {
var total: Double = 0
for number in numbers {
total += number
}
return total
}
下面是兩次呼叫sum函式程式碼:
sum(100.0, 20, 30)
sum(30, 80)
可以看到每次傳遞引數的個數是不同的。
歡迎關注關東昇新浪微博@tony_關東昇。 關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程資訊
更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com 智捷課堂論壇網站:http://51work6.com/forum.php
相關文章
- python Scrapy 從零開始學習筆記(一)Python筆記
- python Scrapy 從零開始學習筆記(二)Python筆記
- PHP從零開始系列二(學習筆記):序言PHP筆記
- PHP從零開始系列一(學習筆記):前言PHP筆記
- 【從零開始學習 MySql 資料庫】(2) 函式MySql資料庫函式
- 從零開始學Electron筆記(六)筆記
- 從零開始學Electron筆記(七)筆記
- 從零開始學Electron筆記(二)筆記
- 從零開始學Electron筆記(四)筆記
- 從零開始學Electron筆記(五)筆記
- 從零開始學Electron筆記(一)筆記
- 從零開始學Electron筆記(三)筆記
- 從零開始學習C++之遞推C++
- Shell學習【引數傳遞】
- swift 函式傳遞Swift函式
- JavaScript函式傳遞引數JavaScript函式
- 函式的引數傳遞函式
- day10學習筆記之函式上筆記函式
- 從零開始JAVA資料結構學習筆記(一)Java資料結構筆記
- 從零開始學習機器學習機器學習
- 從零開始學習laravelLaravel
- 從零開始學習KafkaKafka
- 函式作為引數傳遞函式
- 函式引數傳遞及返回函式
- iOS學習筆記42 Swift(二)函式和閉包iOS筆記Swift函式
- 從零開始學Python:20課-函式使用進階Python函式
- 從零開始的Python學習Episode 19——物件導向(2)Python物件
- MYSQL學習筆記15: 數值函式MySql筆記函式
- 從零開始機器學習機器學習
- python中函式的引數傳遞Python函式
- 從零開始學五筆(一):概述
- async函式學習筆記。函式筆記
- 生成函式 學習筆記函式筆記
- ES6語法學習筆記之函式預設引數筆記函式
- Python的函式引數傳遞:傳值?引用?Python函式
- 從零開始學Python:第八課-函式和模組Python函式
- 《Python深度學習從零開始學》簡介Python深度學習
- ?從零開始學習webpack系列五(解析打包樣式)Web
- 深度學習——loss函式的學習筆記深度學習函式筆記