闭包
闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些编程语言中的匿名函数(Lambdas)比较相似。
闭包表达式
闭包表达式语法有如下的一般形式:
{ (parameters) -> return type in
statements
}
闭包表达式参数 可以是 in-out 参数,但不能设定默认值。如果你命名了可变参数,也可以使用此可变参数。元组也可以作为参数和返回值。 下面的例子展示了之前 backward(::) 函数对应的闭包表达式版本的代码:
reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in
return s1 > s2
})
根据上下文推断类型
reversedNames = names.sorted(by: { s1, s2 in return s1 > s2 } )
单表达式闭包的隐式返回
reversedNames = names.sorted(by: { s1, s2 in s1 > s2 } )
参数名称缩写
reversedNames = names.sorted(by: { $0 > $1 } )
在这个例子中,1 表示闭包中第一个和第二个 String 类型的参数。
运算符方法
reversedNames = names.sorted(by: >)