0
將代碼從ruby 1.8.6遷移到2.0時,我發現綁定的eval行爲已經改變。我沒有找到任何有關這方面的信息,這些方法的文件沒有改變其措辭。ruby 2.0對binding和eval的更改
object = Math
binding = object.__send__(:binding)
puts eval("self", binding)
puts eval("sin(0.2)", binding)
給出irb1.8:
> Math
> 0.1986…
和irb2.0:
> main
> NoMethodError
我使用新binding.eval("self")
時得到相同的什麼是根本改變,以及如何在Ruby 2.0中實現以前的行爲?