//非逃逸閉包(指明閉包是在函數(shù)前執(zhí)行舱卡,不能用于外部應用闽颇,另外聲明了非逃逸閉包后冗酿,在閉包中不用添加self(非逃逸不存在循環(huán)引用))
//非逃逸閉包
func aaa(@noescape clo: (Void->Void)) {
clo()
}
aaa {print("...")}
//逃逸閉包
var closure : (Void->Void)?
func bbb(clo: (Void->Void)) {
closure = clo
}
bbb {print("...")}
closure!()
//自動閉包(自動將表達式轉(zhuǎn)化為閉包券犁,只能用于無參 ()->T )
//自動非逃逸閉包
func ccc(@autoclosure clo: ()->Bool) {
if clo() {
print("...")
}
}
ccc(2>1)
func ccc2(clo: ()->Bool) {
if clo() {
print("...")
}
}
//ccc2(2>1)? ?
ccc2 {2 > 1}