我注意到,类变量@@ my_class变种现在查找在instance_eval'd对象的上下文中的Ruby 1.9.1而这不是在红宝石1.8.6的情况。

什么是instance_eval的行为的Ruby 1.9.1一些其他方面的差异?

有帮助吗?

解决方案

我无法一一列举,但我知道有在不断查找一些变化。在1.8,常量查找是在呼叫者范围,而这是在块范围在1.9。

FOO = "hi"

class Something
  FOO = "bye"

  def self.handle(&block)
    instance_eval(&block)
  end
end

p Something.handle { FOO }
# "hi" on 1.8, "bye" on 1.9

其他提示

我认为[至少目前]不返回自,要么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top