在groovy中Script类和Binding类之间的确切区别

时间:2012-08-16 05:59:18

标签: groovy

考虑以下代码:

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的范围设置的?

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

您可以在the constructor of Script

中看到它