次のコードを検討してください。
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
方法ですか?
前もって感謝します。