Rud*_*udi 5 javascript closures swift
Swift 中闭包的一般概念是否类似于 Javascript 中的闭包,或者它们是否使用相同的单词“closure”但具有不同的规则?具体来说,(引用我的朋友的话)Javascript 中的闭包是“只能在创建它的地方查看水晶球”。
因此,在 Javascript 中,此代码有效:
var outside = 5;
function test() {
alert(outside); // returns 5
}
Run Code Online (Sandbox Code Playgroud)
这是否意味着在 Swift 中,如果我以任何可能的方式创建闭包,它将可以访问创建闭包的同一范围内的所有局部变量?
Swift 闭包捕获局部变量,因此满足您的“只能在创建的地方查看水晶球”的要求。
\n\n由于作用域的不同,Swift 不会遇到在循环内使用闭包的相同问题
\n\nJavaScript 循环内闭包 \xe2\x80\x93 简单实用示例
\n\n斯威夫特等效:
\n\nvar funcs: [()->()] = []\n\nfor i in 0...3 {\n funcs += {\n println(i)\n }\n}\n\nfor i in 0...3 {\n println(funcs[i]())\n}\nRun Code Online (Sandbox Code Playgroud)\n\n产生结果 0, 1, 2, 3
\n| 归档时间: |
|
| 查看次数: |
1252 次 |
| 最近记录: |