閉包表達(dá)式

0.閉包表達(dá)式.png
大括號(hào)+參數(shù)+返回值類(lèi)型+in+函數(shù)體代碼
尾隨閉包

0.尾隨閉包.png
let result = exec(v1: 1, v2: 2) { (a, b) -> Int in
return a * b
}
let result = exec(v1: 1, v2: 2) {
return $0 * $1
}
let result = exec(v1: 1, v2: 2) {
$0 * $1
}
上面的三種寫(xiě)法是等效的。
函數(shù)的最后一個(gè)參數(shù),且這個(gè)參數(shù)是一個(gè)閉包表達(dá)式
閉包

0.閉包.png
函數(shù)+捕獲的變量/常量環(huán)境
閉包不同于閉包表達(dá)式
把閉包想象成一個(gè)類(lèi)
自動(dòng)閉包

0.自動(dòng)閉包.jpg
有時(shí)可以延遲執(zhí)行某些代碼,甚至不執(zhí)行。