Swift中闭包表达式是一种利用简洁语法构建内联闭包的方式。 闭包表达式提供了一些语法优化,使得撰写闭包变得简单明了。
Swift中的闭包,就相当于Swift中的一个匿名函数,闭包形参不带标签,没有所谓的外部参数名。闭包的表达式如下:
let blcok = { (param list) -> return Type in
//blcok
}
如果返回类型为Void,那么可以去掉返回,简化如下:
let blcok = { (param list) in
//blcok
}
如果测试参数列表也为空的话,参数部分也可以去掉,简化如下:let blcok = {
//blcok
}
下面是一个简单的闭包的简化过程
上面的是一个完整的闭包,实现两个数相加,因为类型可以通过返回值进行推断,所以可以直接去掉返回值,如下:
类型Swift自动为内联函数提供了参数名称缩写的功能,所以可以讲参数名隐藏,通过$0, $1,$2来顺序调用闭包的参数,简化如下所示:
理论上,单行的表达式闭包可以通过隐藏return关键字来返回单行表达式的结果,简化如下: