Ruby 1.9.1和1.8.6之间的instance_eval行为的差异?

时间:2009-08-04 15:02:58

标签: ruby ruby-1.9 ruby-1.8

我注意到类变量@@ my_class var现在在Ruby 1.9.1中的instance_eval'd对象的上下文中被查找,而在Ruby 1.8.6中却不是这样。

Ruby 1.9.1的instance_eval行为有哪些其他差异?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我认为[至少目前]也不会回归自我。