闭包就是匿名函数
说明:
1. 闭包主要指向函数类型
2. 闭包的参数必须和函数类型的参数和返回值一致
闭包格式
{
(参数:类型) -> 返回类型 in
执行方法
return 返回类型
}
示例:
// 定义一个函数
func GetList(arr:[Int],pre:(Int) -> Bool) ->[Int] {
var tempArr = [Int]()
for temp in arr {
if pre(temp) {
tempArr.append(temp)
}
}
return tempArr
}
let arr = GetList([1,2,3,4],{ (s:Int) -> Bool in
return s > 2
})
// 1. 省略参数类型和括号
var arr1 = GetList([1,{ s in
return s > 2
})
// 2. 省略参数类型和括号,return 关键字
var arr2 = GetList([1,{s in s > 2})
print(arr2) // [3,4]
// 3. 参数名字缩写
var arr3 = GetList([1,{ $0 > 2
})
print(arr3) // [3,4]