1.什么是闭包
闭包是一个捕获了上下文的常量或者是变量的函数。
-
闭包是
引用类型
-
闭包分为以下几种:
闭包表达式
尾随闭包
逃逸闭包
自动闭包
-
函数是一种特殊的闭包,函数不会捕获值。
-
闭包可以当做变量,也可以当做参数传递
2. 闭包表达式
- 闭包表达式就是一个
匿名函数
,从上下文
中捕获
变量
和常量
。 - 闭包表达式是是swift的语法,使用闭包表达式能更简洁的传达信息。
比如:
{
(age: Int) in
return age
}
优点
:
- 利用上下文推断参数和返回值类型
- 单表达式可以隐士返回,即省略return关键字
- 参数名称的简写
- 尾随闭包表达式
3. 尾随闭包
- 当我们把闭包表达式作为函数的最后一个参数,如果当前的闭包表达式很长,我们可以通过尾随闭包的书写方式提高代码的可读性。
- 尾随闭包的作用域是在当前函数内,
比如说下面的方式,我们可以使用尾随闭包,增加代码的可读性。
var array = [1, 2, 3]
array.sort{
(item1 : Int, item2: Int) -> Bool in return item1 < item2 }
array.sort(by: {
(item1, item2) -> Bool in return item1 < item2 })
array.sort(by: {
(item1, item2)