Swift 閉包

1.標(biāo)準(zhǔn)閉包
1.1實(shí)例
1.1.1聲明

屏幕快照 2018-08-01 下午3.56.12.png

1.1.2.調(diào)用閉包
屏幕快照 2018-08-01 下午3.57.06.png

1.2 閉包說明
Swift 中閉包的表達(dá)方式很靈活,標(biāo)準(zhǔn)語法格式如下
{(形參列表) -> 返回值類型 in
核心代碼的實(shí)現(xiàn)
};
{ (val:Int) -> Int in
return val * val;
}
1.3 閉包的簡化
1.3.1 類型推斷的簡化
類型推斷的簡化是根據(jù)上下文環(huán)境推斷出參數(shù)類型和返回值類型。
形如上面的閉包形式,可以簡化為:
{val in return val * val }
1.3.2 省略 return 關(guān)鍵字,此處注意的是:省略的前提是閉包中只有一條 return 語句,如果包含多條 return 語句是不允許省略的
{val in val * val}
1.3.3 使用位置參數(shù)簡化閉包。 我們可以使用0,1,2來標(biāo)識(shí)調(diào)用的閉包中的參數(shù),0 代表第一個(gè)參數(shù),以此類推,形如:
result = {0 *0}
1.3.4 直接使用閉包的返回值.形如
let result = {val in
return val * val;
};
print("result = (result)");

2.尾隨閉包 ,適用于閉包的表達(dá)式比較長,需要是最后一個(gè)參數(shù)
2.1 尾隨閉包的聲明


屏幕快照 2018-08-01 下午4.59.50.png

2.1 尾隨閉包的調(diào)用


屏幕快照 2018-08-01 下午5.00.27.png

3.逃逸閉包。函數(shù)的閉包在函數(shù)的異步執(zhí)行結(jié)束后才會(huì)被調(diào)用,那么這個(gè)函數(shù)就叫做逃逸閉包。方法是:這個(gè)閉包需要存儲(chǔ)在函數(shù)的外部。
如下所示:


屏幕快照 2018-08-01 下午5.23.59.png

實(shí)現(xiàn):


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

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

  • 閉包是自包含的函數(shù)代碼塊,可以在代碼中被傳遞和使用。Swift 中的閉包與 C 和 Objective-C 中的代...
    窮人家的孩紙閱讀 1,809評(píng)論 1 5
  • 閉包可以從定義它們的上下文中捕獲和存儲(chǔ)對(duì)任何常量和變量的引用。 這被稱為關(guān)閉這些常量和變量。 Swift處理所有的...
    Joker_King閱讀 635評(píng)論 0 2
  • Swift 中的閉包是自包含的函數(shù)代碼塊,可以在代碼中被傳遞和使用。類似于OC中的Block以及其他函數(shù)的匿名函數(shù)...
    喬克_叔叔閱讀 556評(píng)論 1 3
  • * 閉包 是自包含的函數(shù)代碼塊,可以在代碼中被傳遞和使用。swift中的閉包和Objective-C中的代碼塊(b...
    EndEvent閱讀 893評(píng)論 4 8
  • 閉包是自包含的代碼塊,可以在代碼中被傳遞和使用。Swift中的閉包與C和Objective-C中代碼塊(block...
    Raaaaamsey閱讀 902評(píng)論 0 2

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