Swift中的闭包概念类似于Javascript中的闭包
Is concept of closures in Swift similar to closures in Javascript?
Swift中闭包的一般概念是否与Javascript中的闭包相似,或者它们使用相同的"闭包"一词,但规则不同?具体来说,(引用我朋友的话)Javascript中的闭包是"只能查看创建位置的水晶球"。
所以,在Javascript中,这段代码可以工作:
var outside = 5;
function test() {
alert(outside); // returns 5
}
这是否意味着在Swift中,如果我以任何可能的方式创建闭包,它将能够访问创建闭包的同一作用域内的所有局部变量?
(我看过维基百科对编程中闭包的定义,但感觉太模糊了——具体来说,闭包跟踪的是什么值)
快速闭包捕获局部变量,以满足您的"水晶球只能在创建时查看"的要求。
由于作用域的不同,Swift不会遇到在循环中使用闭包的问题
JavaScript闭包内循环-简单的实际例子
Swift版本:
var funcs: [()->()] = []
for i in 0...3 {
funcs += {
println(i)
}
}
for i in 0...3 {
println(funcs[i]())
}
生成结果0,1,2,3
相关文章:
- for循环中的JavaScript闭包
- Javascript闭包-如何防止内存泄漏
- Javascript.闭包和dynamic'这'实际上具有约束力
- 如何告诉闭包javascript编译器不要混淆webkitAudioContext的方法名称
- 如何使用外部Javascript库(如jQuery)重命名Google闭包样式表
- 就良好实践而言,带闭包的javascript原型是一件好事吗
- 闭包中的Javascript值
- 用于添加两个数字的javascript闭包的用法
- 什么'这个javascript闭包的区别是什么
- javascript,将参数传递给函数内部的闭包中的回调
- javascript中的闭包对我来说工作方式不同
- 我可以使用JavaScript闭包添加数字吗
- 在Javascript中使用闭包
- 这是在JavaScript中形成闭包的正确方法吗
- 作用域问题-此函数是否形成闭包-JavaScript
- JavaScript - 为什么这个闭包不保存参数
- javascript闭包:保护内部变量
- 如何测试只在闭包范围中可见的javascript方法
- JavaScript闭包&回调函数
- 闭包 JavaScript 有助于理解示例