次のコードを検討してください。
x = 10
10.times{
x++
}
assert binding.getVariable("x") == 20
これまでのところ、これが上記のコードで起こっていることであると懸念しています。Scriptクラスには、x値を持つ変数への参照があり、から変数にアクセスするクロージャーを10呼び出します。したがって、基本的にスコープはクラスごとに行われます。timesxScriptxScript
しかし、いつbinding写真に入ったのだろうか?ある意味、私は電話new Binding()も何もしていませんが、まだそこにあります。
私はそれと少し混乱しています。の正確な用途はbinding何ですか? Scriptクラスは を作成しますか?bindingそうであれば、それがメソッドx内のスコープを管理するtimes方法ですか?
前もって感謝します。