考虑以下代码:
x = 10
10.times{
x++
}
assert binding.getVariable("x") == 20
到目前为止,我担心这是上面代码中发生的事情:Script
类引用了变量x
,其值为10
并且它调用{{ 1}}闭包将从times
访问变量x
。所以基本上Script
的范围是由x
类完成的。
但我想知道Script
什么时候进入画面?从某种意义上说,我没有打过binding
或其他任何东西,但仍然在那里。
我有点困惑。 new Binding()
的确切用法是什么? binding
类是否会创建Script
,如果是这样,它是如何管理binding
方法中x
的范围设置的?
提前致谢。