1

考虑这段代码:

x = 10
10.times{    
    x++
}
assert ​binding.getVariable("x") == 20

就目前而言,我担心这就是上面代码中发生的事情:Script类引用了x具有值的变量,10它调用了times闭包,该闭包x将从Script. 所以基本上范围x是由Script班级完成的。

但我想知道什么时候binding出现的?从某种意义上说,我没有打电话new Binding()或任何事情,但仍然存在。

我有点困惑。的具体用途是binding什么?类是否Script创建binding,如果是这样,它是如何管理方法内的x范围times

提前致谢。

4

1 回答 1

2

脚本类在构造时构造一个新的绑定

您可以在Script 的构造函数中看到它是这样做的

于 2012-08-16T07:36:45.577 回答