如何獲取主綁定?換句話說,在下面的代碼中,我怎樣才能讓eval
忽略以前在some_codes
...... some_codes
中所做的所有賦值等等?如何在主綁定中運行eval
some_codes
...
some_codes
eval(string_to_be_executed, binding)
如何獲取主綁定?換句話說,在下面的代碼中,我怎樣才能讓eval
忽略以前在some_codes
...... some_codes
中所做的所有賦值等等?如何在主綁定中運行eval
some_codes
...
some_codes
eval(string_to_be_executed, binding)
最簡單的方法是隻創建該文件的頂部的結合:
block = Proc.new{}
# some_codez
# ...
# some more of teh codez
eval(string_to_be_evaluated, block.binding)
我終於實現了這一點,這似乎比本的答案,我接受稍微優雅。
在第一個文件的開頭要加載,分配是這樣的:
$main_binding = binding
然後,在必要的時候,我可以用它喜歡:
eval(string_to_be_evaluated, $main_binding)
你能告訴我們你的實際代碼? 「'some_codes'」無助於我們理解你在這裏做什麼。 – 2012-03-03 04:13:53
我不認爲你理解我的問題。 – sawa 2012-03-03 05:57:50