我想要訪問在頂層主要對象中定義的變量和方法在程序EVAL和紅寶石綁定
@x = :hello
def instanceMethodMain
p "instanceMethodMain"
end
class Baz
def method
p eval("@x", TOPLEVEL_BINDING)
p eval("instanceMethodMain", TOPLEVEL_BINDING)
end
end
Baz.new.method
輸出是
:hello
"instanceMethodMain"
"instanceMethodMain"
的輸出是相同的,即使我使用
mainRef=TOPLEVEL_BINDING.eval('self')
p mainRef.send :instanceMethodMain
有人可以解釋爲什麼instanceMethodMain被調用兩次。