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)和上方代碼相同的功能雕憔。
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é)果列表。
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é)果是一致的。
22. 無論加號、乘號芥吟,還是其它運算符號侦铜,其實都是對本行語句中的閉包語句的一種省略的寫法专甩。點擊顯示結(jié)果圖標,查看本行代碼執(zhí)行的結(jié)果钉稍,并結(jié)束對閉包功能的討論涤躲。
本文整理自:《Swift4互動教程》,真正的[手把手]教學模式贡未,用最快的速度上手iOS開發(fā)和Swift語言种樱,蘋果商店App Store免費下載:https://itunes.apple.com/cn/app/id1320746678,或掃描本頁底部的二維碼羞秤。課程配套素材下載地址:資料下載