メイン スレッドとはbinding
異なります。このトップレベル スコープとは何ですか? binding
このスコープはメイン スレッドと何が違うのですか?
> ruby -e 'puts TOPLEVEL_BINDING === binding'
false
実際には、TOPLEVEL_BINDING
常に定義済みの のグローバル インスタンスを参照し、毎回、現在の実行コンテキストをカプセル化するの新しいインスタンスBinding
を作成します。最上位では、両方に同じバインディングが含まれていますが、同じオブジェクトではないため、またはでバインディングの同等性をテストすることはできません。Kernel#binding
Binding
==
===
puts TOPLEVEL_BINDING
puts TOPLEVEL_BINDING
puts binding
puts binding
puts binding == binding
# =>
#<Binding:0x9769ea0>
#<Binding:0x9769ea0>
#<Binding:0x9941ea8>
#<Binding:0x9941e58>
false