闭包表达式
![](https://img.haomeiwen.com/i1154538/96accf6ca9346d01.png)
大括号+参数+返回值类型+in+函数体代码
尾随闭包
![](https://img.haomeiwen.com/i1154538/bbb0c4c6e2bd784c.png)
let result = exec(v1: 1, v2: 2) { (a, b) -> Int in
return a * b
}
let result = exec(v1: 1, v2: 2) {
return $0 * $1
}
let result = exec(v1: 1, v2: 2) {
$0 * $1
}
上面的三种写法是等效的。
函数的最后一个参数,且这个参数是一个闭包表达式
闭包
![](https://img.haomeiwen.com/i1154538/06988f3dac354234.png)
函数+捕获的变量/常量环境
闭包不同于闭包表达式
把闭包想象成一个类
自动闭包
![](https://img.haomeiwen.com/i1154538/cea09ac9896c3962.jpg)
有时可以延迟执行某些代码,甚至不执行。
网友评论