———————Closure闭包————————–
Closure 类似于之前oc的Blocks , 还有c语言的函数指针
var arr = [20,9,39,39,46]
//(num:Int,value:Int)->Bool is the Closure type, cb的类型
func hasClosureMatch(arr:[Int], value:Int, cb:(num:Int,value:Int)->Bool) ->Bool{
for item in arr{
if(cb(num: item, value: value))){
return true
}
}
return false
}
//总结一下 Closure , func closure (num:Int , value:Int) -> Bool
var v1 = hasClosureMatch(arr, 40, {(num:Int,value:Int) -> Bool in return
num >= value
})
var v2 = hasClosureMatch(arr, 40, {(num:Int,value:Int) -> Bool in return
num <= value
})
var v3 = hasClosureMatch(arr, 40,{
//没有写类型 (num:Int,value:Int) -> Bool
// 这里 $0 表示num $1 表示value
return $0 < $1
})