Swift编程:闭包、函数引用、选择器与变量的深入解析
1. 闭包相关特性
1.1 闭包设置捕获变量
闭包能够捕获其外部环境中的变量,并且如果该变量是可设置的,闭包就可以对其进行设置。以下是一个示例代码:
func pass100 (_ f:(Int) -> ()) {
f(100)
}
var x = 0
print(x)
func setX(newX:Int) {
x = newX
}
pass100(setX)
print(x)
在上述代码中,第一个 print(x) 输出为 0,而第二个 print(x) 输出为 100。这是因为传递给 pass100 的 setX 函数捕获了外部的变量 x ,并对其进行了修改。
1.2 闭包保留其捕获的环境
当闭包捕获其环境时,即使其他部分不再保留该环境,闭包也会将其保留下来。以下是一个示例函数 countAdder :
func countAdder(_ f: @escaping () -> ()) -> () -> () {
var ct = 0
return {
ct = ct + 1
print("count is \(ct)")
超级会员免费看
订阅专栏 解锁全文
58

被折叠的 条评论
为什么被折叠?



