1.函數(shù)基本寫法:
swift里面的函數(shù)就相當(dāng)于是oc里面的方法,以func開頭
事例: func 函數(shù)名 (參數(shù)..) ->返回值類型{
// 具體的函數(shù)內(nèi)容
}
2. 常見的函數(shù)的類型:
// 表示無參,無返回值的函數(shù)
//func sum () ->Void{
//
//}
// 無返回值的函數(shù)就相當(dāng)于是一個(gè)空的元組類型,所以void也可以使用()代替
//func sum () ->(){
//
//}
// 沒有返回值,返回值也可以直接省略不寫
//func sum (){
//
//}
// 有參,無返回值
//func sum(a: Int){
//
//}
// 有參, 有返回值
func sum(a: Int) -> Int{
return a
}
// 返回多個(gè)參數(shù)的特例
func sum() -> (String, Int, Double){
let tuple = ("小明", 18, 1.75)
return tuple
}
3. 函數(shù)的使用注意
?1.內(nèi)部參數(shù)和外部參數(shù):在函數(shù)內(nèi)部使用的參數(shù)叫做內(nèi)部參數(shù),在函數(shù)外部調(diào)用傳遞的擦桉樹叫做外部參數(shù)
func test(a: Int, b: Int) -> Int{
// a和b在這里表示內(nèi)部參數(shù)
return a + b
}
// 這里的a和b表示外部參數(shù)
test(a: 1, b: 3)
2. 參數(shù)定義別名
在函數(shù)的參數(shù)前申明一個(gè)別名,當(dāng)函數(shù)外部在調(diào)用的時(shí)候就可以使用這個(gè)別名,有組于函數(shù)外界使用的理解
事例:
func test(aa a: Int, bb b: Int) -> Int{
// a和b在這里表示內(nèi)部參數(shù)
return a + b
}
test(aa: 2, bb: 7)
3. 參數(shù)忽略
在函數(shù)的參數(shù)前使用_表示,在函數(shù)的外部調(diào)用這個(gè)函數(shù)式這個(gè)參數(shù)就可以被忽略
事例:
func test(_ a: Int, bb b: Int) -> Int{
// a和b在這里表示內(nèi)部參數(shù)
return a + b
}
test(0, bb: 1)
4. 默認(rèn)參數(shù)
在定義參數(shù)的時(shí)候,有時(shí)候我們可以給一個(gè)參數(shù)添加一個(gè)默認(rèn)值,當(dāng)外界不給我傳遞這個(gè)參數(shù)值的時(shí)就可以使用這個(gè)參數(shù)的默認(rèn)值
事例:
func test(aa a: Int, bb b: Int = 1) -> Int{
// a和b在這里表示內(nèi)部參數(shù)
return a + b
}
test(aa: 1)
5. 參數(shù)的地址傳遞
在函數(shù)內(nèi)部, 默認(rèn)接收到參數(shù)被賦值給一個(gè)常量,在swift3.0中, 如果想要改變, 需要在函數(shù)內(nèi)部使用var修飾
事例:
func test(a: Int){
var a = a
a = 666
print(a)
}
var num = 99
test(a: num)
如果我們不想通過在函數(shù)內(nèi)部用var去定義一個(gè)變量去過度修改,也可以通過傳遞參數(shù)地址的形式使用inout關(guān)鍵字去修改參數(shù)
事例:
func test(a: inout Int){
a = 666
print(a)
}
var num = 99
test(a: &num)
5. 可變參數(shù)
顧名思義: 外部調(diào)用函數(shù)的時(shí)候參數(shù)可以傳遞任意多個(gè), 內(nèi)部可以把內(nèi)部參數(shù)當(dāng)著數(shù)組去使用,
事例:
func test(nums: Int...) -> Int{
var result: Int = 0
for num in nums {
result += num
}
return result
}
test(nums: 1, 1, 2, 4, 4, 6, 4)