Swift 闭包又名匿名函数,函数是特殊的闭包。相当于Objective-C中的block
语法格式:
{
(参数) -> 返回值 in
函数体
}
// 使用系统排序函数,说明闭包的省略机制
var numbers = [11,22,44,77,33,66]
var numbersResult = sorted(numbers,{
(n1: Int,n2: Int) -> Bool in
return n1 > n2
})
numbersResult // 调用
// 闭包的参数类型可以省略,return 可以省略
var numbersResult1 = sorted(numbers,{(n1,n2) -> Bool in
n1 > n2
})
numbersResult1 // 调用
// in 前面的语句都可以省略,没有参数名,提供 $0,$1 的参数方式获取
var numbersResult2 = sorted(numbers,{
return $0 > $1
})
numbersResult2 // 调用
// 极简模式
var numberResult3 = sorted(numbers,>)
numberResult3 // 调用
// 尾随闭包
// 如果闭包作为参数列表的最后一个参数,并且实现比较复杂的时候,可放在参数列表的外面,此时称作尾随闭包
var numberResult4 = sorted(numbers){
$0 > $1
}