Swift之函數(shù)

swift函數(shù)是個重點(diǎn),但是不難理解,特殊的我會說明的。

函數(shù)的定義

/// 函數(shù)定義,格式 函數(shù)名(形參列表)->返回值類型
func sum(x:Int,y:Int) -> Int {
    return x + y
}

在外部調(diào)用print(sum(x: 10, y: 50)),這個說明一下:

//swift1.0調(diào)用的方式 sum(10,50)所有的形參都會省略
    //1.0 其他的程序員非常喜歡
    //swift2.0調(diào)用的方式 sum(10, y: 50),第一個形參的名稱會省略
    //swift3.0調(diào)用的方式 OC的程序員非常喜歡

外部參數(shù)

func sum1(num1 x:Int,num2 y:Int) -> Int {
    return x + y
}

調(diào)用print(sum1(num1: 30, num2: 60)),說明一下:

//外部參數(shù)就是在形參前加一個名字
//外部參數(shù)不會影響函數(shù)內(nèi)部細(xì)節(jié)
//外部參數(shù)會讓外部調(diào)用方看起來更加的直觀

另外一種寫法:

func sum2(_ x:Int,_ y:Int) -> Int {
    //在swift中_就是可以忽略任意不感興趣的內(nèi)容
    //Immutable value 'i' was never used; consider replacing with '_' or removing it
    // i從來沒有被用到,建議使用_替代
    //for i in 0..<10 {
    for _ in 0..<10 {
        print("hello world")
    }
    return x + y
}

調(diào)用print(sum2(40, 60)),如果使用下劃線_,在外部調(diào)用函數(shù)時,會忽略形參的名字.

函數(shù)的默認(rèn)值

func sum3(x:Int = 1,y:Int = 2) -> Int {
    return x + y
}

然后我們這么調(diào)用:

    print(sum3())
    print(sum3(x: 10, y: 20))
    print(sum3(x: 10))
    print(sum3(x: 30))

打印的值是:

3
30
12
32

說明:

//通過給參數(shù)設(shè)置默認(rèn)值,在調(diào)用的時候,可以任意組合參數(shù),如果不指定的,就使用默認(rèn)值
// OC中需要定義很對的方法,以及方法實(shí)現(xiàn),最終調(diào)用包含所有參數(shù)的那個函數(shù)

與OC對比一下:

圖.png

可以看出OC中如果想組合不同參數(shù)的話就得寫很多個方法,第一個帶一個參數(shù),第二個帶兩個參數(shù),舉個例子就是,如果你想使用通過url加載圖片的話就用第一個,如果還想帶placeholder圖的話就使用第二個,所以你需要寫很多個方法滿足不同的需求,一般為了達(dá)到效果,調(diào)用那個最長的函數(shù)。如果在swift中的話,直接就可以寫一個,然后定義一個默認(rèn)值,如果需要改哪個參數(shù)的話就調(diào)的時候給個值就可以,其他的還是使用默認(rèn)的值,調(diào)用起來比較方便。

無返回值的情況

/*
 知道就行,主要用在閉包,在閱讀第三方代碼時保證能夠看懂
 -直接省略
 -()
 -void
*/

func demo1() {
    print("哈哈")
}
//->輸出到目標(biāo)
func demo2() -> () {
    print("呵呵")
}

func demo3 () -> Void {
    print("嘻嘻")
}

這幾種就是什么返回值都沒有。

總結(jié)

函數(shù)比較重要,要多多琢磨,加深理解。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容