函數(shù)
Swift函數(shù)與c和objective-c有些不同典徘,C的函數(shù)表達(dá)式比較簡單,oc則需要本地參數(shù)和外部參數(shù)設(shè)置名稱账劲,swift的參數(shù)提供默認(rèn)值阱缓,簡化了函數(shù)調(diào)用非凌,并可以通過在輸入輸出函數(shù)在函數(shù)執(zhí)行完畢之后修改傳遞的變量。
Swift中的每個函數(shù)都有一個類型荆针,包括函數(shù)的參數(shù)類型和返回類型敞嗡。您可以方便的使用此類型像任何其他類型一樣,這使得它很容易將函數(shù)作為參數(shù)傳遞給其他函數(shù),甚至從函數(shù)中返回函數(shù)類型。函數(shù)也可以寫在其他函數(shù)中來封裝一個嵌套函數(shù)用以范圍內(nèi)有用的功能
1航背、 swift函數(shù)結(jié)構(gòu)如下:
func 函數(shù)名( 參數(shù)變量:類型 喉悴,參數(shù)變量:類型...){}
說明:
1: func 是函數(shù)關(guān)鍵字
2:{} 函數(shù)體
3: 參數(shù)變量是默認(rèn)常量類型,不能在函數(shù)函數(shù)體里面直接修改
即 func A (value:String) 與 func A (let value:String)寫法是相同的玖媚,即value 是常量箕肃。
例如
func SayHello(value :String,value1:String){
let str = value+" "+value1
print(str)
}
SayHello("hello","swift")
運(yùn)行結(jié)果
hello swift
########注意
value 和value1 都默認(rèn)是常量,相加今魔,結(jié)果必定是常量勺像,所以一定要用let接著,如果用var 會報(bào)錯错森。
注意:value和value1不可再函數(shù)體里直接修改吟宦,如果是下面的寫法就會報(bào)錯:
func SayHello(value :String,value1:String){
value = "hello"
}
但是這并不是不可修改,看下面:
func 函數(shù)名( var 參數(shù)變量 : 參數(shù)類型 ) {}
說明
1: func 函數(shù)關(guān)鍵字
2: var 參數(shù)變量 :參數(shù)類型 表示參數(shù)變量是可變變量涩维,不是常量類型殃姓,可以任意修改
例如
func SayHello(var value :String){
value = "hello" //value 是被var 修改了,value是可變變量
print(value)
}
SayHello("test")
輸出 hello
2、 可變參數(shù)
fun 函數(shù)名 (參數(shù)名:參數(shù)類型...){}
說明:
通過在變量類型名后面加入(...)的方式來定義可變參數(shù)
可變參數(shù)可以接受零個或多個值辰狡,可變參數(shù)的傳入值在函數(shù)體中變?yōu)榇祟愋偷囊粋€數(shù)組
func arithmeticMean(numbers: Double...) -> Double {
var total: Double = 0
for number in numbers {
total += number
}
return total / Double(numbers.count)
}
3锋叨、外部參數(shù)名
func 函數(shù)名 ( 外部參數(shù)名 參數(shù)變量名:類型 垄分,外部參數(shù)名 參數(shù)變量名:類型)
說明:
1:外部參數(shù)名 + 局部參數(shù)變量名 : 類型 宛篇,構(gòu)成一個參數(shù)
調(diào)用方法
函數(shù)名(外部參數(shù)名 :傳入值,外部參數(shù)名:傳入值)
func sayHello(to person: String, and anotherPerson: String) -> String {
return "Hello \(person) and \(anotherPerson)!"
}
print(sayHello(to: "Bill", and: "Ted"))
// prints "Hello Bill and Ted!"