swift之函數(shù)

1>函數(shù)參數(shù)與返回值

無參無返回值函數(shù)

盡管這個函數(shù)沒有參數(shù)徐裸,但是定義中在函數(shù)名后還是需要一對圓括號圣蝎。當被調(diào)用時触幼,也需要在函數(shù)名后寫一對圓括號放接。

有參無返回值函數(shù)

因為這個函數(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)部使用丛晌。

一般情況下,第一個參數(shù)省略其外部參數(shù)名斗幼,第二個以及隨后的參數(shù)使用其局部參數(shù)名作為外部參數(shù)名澎蛛。所有參數(shù)必須有獨一無二的局部參數(shù)名.如果你提供了外部參數(shù)名,那么函數(shù)在被調(diào)用時蜕窿,必須使用外部參數(shù)名谋逻。如果你不想為第二個及后續(xù)的參數(shù)設(shè)置外部參數(shù)名,用一個下劃線(_)代替一個明確的參數(shù)名桐经。

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標記)


a的值最終會被修改成17

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ù)可以在其他域中被使用赘艳。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子第练,更是在濱河造成了極大的恐慌阔馋,老刑警劉巖玛荞,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娇掏,死亡現(xiàn)場離奇詭異,居然都是意外死亡勋眯,警方通過查閱死者的電腦和手機婴梧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來客蹋,“玉大人塞蹭,你說我怎么就攤上這事⊙扰鳎” “怎么了番电?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辆琅。 經(jīng)常有香客問我漱办,道長,這世上最難降的妖魔是什么婉烟? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任娩井,我火速辦了婚禮,結(jié)果婚禮上似袁,老公的妹妹穿的比我還像新娘洞辣。我一直安慰自己,他們只是感情好昙衅,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布扬霜。 她就那樣靜靜地躺著,像睡著了一般而涉。 火紅的嫁衣襯著肌膚如雪著瓶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天婴谱,我揣著相機與錄音蟹但,去河邊找鬼。 笑死谭羔,一個胖子當著我的面吹牛华糖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瘟裸,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼客叉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起兼搏,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤卵慰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后佛呻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裳朋,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年吓著,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲤嫡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡绑莺,死狀恐怖暖眼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纺裁,我是刑警寧澤诫肠,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站欺缘,受9級特大地震影響栋豫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜浪南,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一笼才、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧络凿,春花似錦骡送、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至怨愤,卻和暖如春派敷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撰洗。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工篮愉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人差导。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓试躏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親设褐。 傳聞我的和親對象是個殘疾皇子颠蕴,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容