考虑这段代码:
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?
提前致谢。