= {
(a:Int,b:Int) -> Int in //闭包标准写法
return a*b
}
mySecondClosure = {
(a,b) in //闭包简写,类型自动推导...a*b
}
mySecondClosure = {
$0 * $1
//再简写:被捕获的参数列表中,含有a、b,下标从0开始,可通过"$"获取。...省略参数列表 (a, b)和 关键字 in
}
闭包应用
排序
var arr:[Int] = [1,3,5,6,7,2,4,6,8]
arr.sorted() //[1, 2, 3, 4, 5, 6...//filter
arr3.filter {
return $0 > 3 //[4]
}
var arr4 = ["0","1","imagine"]
//map
var num = arr4....map {
Int($0) //[0, 1, nil] 类型转换可能失败,所以返回的是可选型
}
var num2 = arr4.compactMap {
Int($0) //[0,