捕获变量或常量
闭包可以在其被定义的上下文中捕获常量或变量。即使定义这些常量和变量的原作用域已经不存在,闭包仍然可以在闭包函数体内引用和修改这些值
1. 捕获的方式是引用捕获
闭包是以引用的方式捕获常量和变量。捕获的变量可以在闭包中修改,并且会影响原本的变量。
为了优化,如果一个值不会被闭包改变,或者在闭包创建后不会改变,Swift 可能会改为捕获并保存一份对值的拷贝。
2. 闭包会管理捕获变量或常量的生命周期
Swift 负责被捕获变量的所有内存管理工作.即使捕获的常量和变量的原作用域已经不存在,闭包仍然可以在闭包函数体内引用和修改这些值。
最后更新于