6.5 Swift中的閉包(Closure)詳解 [Swift教程]

1. 本節(jié)課將為你演示閉包的使用薛窥,閉包功能使編碼更加簡潔,符合開發(fā)語言的現(xiàn)代挫以、簡便明了的特點者蠕。

2. 首先定義一個函數(shù)類型的變量,它擁有兩個整型參數(shù)掐松,并返回一個整型的結(jié)果踱侣。等號下方的大括號,是用來實用一個函數(shù)功能的代碼塊大磺。

3. 然后在大括號內(nèi)抡句,輸入兩行代碼。前一行代碼杠愧,用來聲明函數(shù)代碼塊的參數(shù)和返回值信息待榔,然后將對參數(shù)的操作,放置在in的下方流济。

4. 通過該函數(shù)類型的變量锐锣,即可調(diào)用函數(shù)的功能:用來獲得兩個參數(shù)的和。

5. 這里創(chuàng)建了一個函數(shù)绳瘟,它同樣可以實現(xiàn)和上方代碼相同的功能雕憔。

6. 調(diào)用的方式也是一樣的。

7. 在使用閉包來聲明一個函數(shù)類型的變量時糖声,可以省略對變量類型的定義橘茉,系統(tǒng)會自動推斷出它的類型。

8. 接著使用相同的代碼姨丈,實現(xiàn)函數(shù)的功能即可。

9. 其實我們還有更加簡單的方式擅腰,在等號的右側(cè)蟋恬,通過一個省略了參數(shù)聲明的閉包語句,給變量賦予了返回兩個參數(shù)之和的函數(shù)功能趁冈。

10. 使用該函數(shù)變量歼争,計算兩個參數(shù)的和拜马。

11. 這種函數(shù)變量的聲明方式,仍然可以進行簡化沐绒,使用$0和$1表示第一個參數(shù)和第二個參數(shù)俩莽,并且省略了return操作符。

12. 使用該函數(shù)變量乔遮,計算兩個參數(shù)的和扮超。

13. 閉包語句隨處可見,例如通過系統(tǒng)提供的排序方法sorted蹋肮,對一個數(shù)組進行排序出刷,在此通過小于號,采用升序排列的方式坯辩。點擊顯示結(jié)果圖標馁龟,顯示結(jié)果列表。

14. 排序方法共進行了4次操作漆魔,點擊顯示結(jié)果圖標坷檩,隱藏結(jié)果列表。

15. 繼續(xù)代碼的編寫改抡。

16. 輸出排序后的數(shù)組矢炼,從右側(cè)可以看出使用閉包排序后的效果。

17. 閉包語句經(jīng)常和方法聲明配合使用雀摘,但是閉包語句通常放在最后一個參數(shù)的位置裸删。在此添加一個方法,該方法擁有一個函數(shù)類型的參數(shù)阵赠,最后返回由該函數(shù)參數(shù)執(zhí)行后的結(jié)果涯塔。

18. 然后使用閉包語句,使用第三個參數(shù)的函數(shù)功能清蚀。

19. 這樣就可以將其它的函數(shù)匕荸,作為該函數(shù)的參數(shù)進行調(diào)用。

20. 同樣可以采用更加簡便的方式枷邪,完成相同的功能榛搔。在此只使用一個加號,代替求和閉包东揣。觀察右側(cè)輸出的結(jié)果践惑,和上面的結(jié)果是一致的。

21. 你甚至可以將加號嘶卧,修改為乘號尔觉。

22. 無論加號、乘號芥吟,還是其它運算符號侦铜,其實都是對本行語句中的閉包語句的一種省略的寫法专甩。點擊顯示結(jié)果圖標,查看本行代碼執(zhí)行的結(jié)果钉稍,并結(jié)束對閉包功能的討論涤躲。

本文整理自:《Swift4互動教程》,真正的[手把手]教學模式贡未,用最快的速度上手iOS開發(fā)和Swift語言种樱,蘋果商店App Store免費下載:https://itunes.apple.com/cn/app/id1320746678,或掃描本頁底部的二維碼羞秤。課程配套素材下載地址:資料下載

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缸托,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子瘾蛋,更是在濱河造成了極大的恐慌俐镐,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哺哼,死亡現(xiàn)場離奇詭異佩抹,居然都是意外死亡,警方通過查閱死者的電腦和手機取董,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門棍苹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茵汰,你說我怎么就攤上這事枢里。” “怎么了蹂午?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵栏豺,是天一觀的道長。 經(jīng)常有香客問我豆胸,道長奥洼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任晚胡,我火速辦了婚禮灵奖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘估盘。我一直安慰自己瓷患,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布遣妥。 她就那樣靜靜地躺著擅编,像睡著了一般。 火紅的嫁衣襯著肌膚如雪燥透。 梳的紋絲不亂的頭發(fā)上沙咏,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音班套,去河邊找鬼肢藐。 笑死,一個胖子當著我的面吹牛吱韭,可吹牛的內(nèi)容都是我干的吆豹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼理盆,長吁一口氣:“原來是場噩夢啊……” “哼痘煤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起猿规,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤衷快,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后姨俩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蘸拔,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年环葵,在試婚紗的時候發(fā)現(xiàn)自己被綠了调窍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡张遭,死狀恐怖邓萨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情菊卷,我是刑警寧澤缔恳,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站的烁,受9級特大地震影響褐耳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜渴庆,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一铃芦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧襟雷,春花似錦刃滓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至计呈,卻和暖如春砰诵,著一層夾襖步出監(jiān)牢的瞬間征唬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工茁彭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留总寒,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓理肺,卻偏偏與公主長得像摄闸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子妹萨,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

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