什么是闭包
闭包是独立的功能块,可以在代码中传递和使用。Swift中的闭包类似于C和Objective-C中的块以及其他编程语言中的lambda。闭包可以从定义它们的上下文中捕获和存储对任何常量和变量的引用。这称为关闭这些常量和变量。Swift为您处理捕获的所有内存管理.
闭包采用以下三种形式之一:
-
全局函数是具有名称且不捕获任何值的闭包。
-
嵌套函数是具有名称的闭包,可以从其闭包函数捕获值。
-
闭包表达式是用轻量级语法编写的未命名的闭包,可以从其周围的上下文中捕获值。
Swift的闭包表达式具有简洁明了的样式,其优化功能鼓励在常见情况下使用简洁,简洁的语法。这些优化包括: -
从上下文推断参数和返回值类型
-
单表达式闭包的隐式返回
-
速记参数名称
-
尾随闭包语法
闭包表达式语法
闭包表达式语法具有以下一般形式:
{ (parameters) -> return type in
statements
}
该参数在封闭表达式语法可以在输出参数,但是他们不能有一个默认值。如果您命名可变参数,则可以使用可变参数。元组也可以用作参数类型和返回类型。