1>函數(shù)參數(shù)與返回值
無參無返回值函數(shù)
盡管這個函數(shù)沒有參數(shù)徐裸,但是定義中在函數(shù)名后還是需要一對圓括號圣蝎。當被調(diào)用時触幼,也需要在函數(shù)名后寫一對圓括號放接。
有參無返回值函數(shù)
無參有返回值函數(shù)
有參有返回值函數(shù)
2>可選元組返回類型
如果函數(shù)返回的元組類型有可能整個元組都“沒有值”伏恐,你可以使用可選的(Optional)元組返回類型反映整個元組可以是nil的事實。你可以通過在元組類型的右括號后放置一個問號來定義一個可選元組栓霜,eg:(Int, String)? 這里需要注意的是 可選元組類型如(Int, Int)?與元組包含可選類型如(Int?, Int?)是不同的.可選的元組類型翠桦,整個元組是可選的,而不只是元組中的每個元素值。
3>函數(shù)參數(shù)名稱
函數(shù)參數(shù)都有一個外部參數(shù)名和一個局部參數(shù)名.外部參數(shù)名用于在函數(shù)調(diào)用時標注傳遞給函數(shù)的參數(shù)销凑,局部參數(shù)名在函數(shù)的實現(xiàn)內(nèi)部使用丛晌。
4>可變參數(shù)
一個可變參數(shù)(variadic parameter)可以接受零個或多個值毁兆。函數(shù)調(diào)用時,你可以用可變參數(shù)來指定函數(shù)參數(shù)可以被傳入不確定數(shù)量的輸入值次询。通過在變量類型名后面加入(...)的方式來定義可變參數(shù)荧恍。(一個函數(shù)最多只能有一個可變參數(shù))
5>輸入輸出參數(shù)
變量參數(shù),僅僅能在函數(shù)體內(nèi)被更改。如果你想要一個函數(shù)可以修改參數(shù)的值屯吊,并且想要在這些修改在函數(shù)調(diào)用結(jié)束后仍然存在送巡,那么就應(yīng)該把這個參數(shù)定義為輸入輸出參數(shù).
定義一個輸入輸出參數(shù)時,在參數(shù)定義前加inout關(guān)鍵字盒卸。一個輸入輸出參數(shù)有傳入函數(shù)的值骗爆,這個值被函數(shù)修改,然后被傳出函數(shù)蔽介,替換原來的值摘投。(輸入輸出參數(shù)不能有默認值,而且可變參數(shù)不能用inout標記虹蓄。如果你用inout標記一個參數(shù)犀呼,這個參數(shù)不能被var或者let標記)
6>使用函數(shù)類型
在 Swift 中,使用函數(shù)類型就像使用其他類型一樣薇组。eg:你可以定義一個類型為函數(shù)的常量或變量外臂,并將適當?shù)暮瘮?shù)賦值給它:
var mathFunction: (Int,Int) ->Int = addTwoInts
這個可以解讀為:
“定義一個叫做mathFunction的變量,類型是‘一個有兩個Int型的參數(shù)并返回一個Int型的值的函數(shù)’律胀,并讓這個新變量指向addTwoInts函數(shù)”宋光。
7>嵌套函數(shù)
把函數(shù)定義在別的函數(shù)體中,稱作嵌套函數(shù).默認情況下炭菌,嵌套函數(shù)是對外界不可見的罪佳,但是可以被它們的外圍函數(shù)(enclosing function)調(diào)用。一個外圍函數(shù)也可以返回它的某一個嵌套函數(shù)黑低,使得這個函數(shù)可以在其他域中被使用赘艳。