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