1
我注意到,类变量@@ my_class var现在在Ruby 1.9.1中的instance_eval对象的上下文中查找,而在Ruby 1.8.6中则不是这种情况。Ruby 1.9.1和1.8.6之间instance_eval行为的差异?
Ruby 1.9.1的instance_eval的行为有什么不同?
我注意到,类变量@@ my_class var现在在Ruby 1.9.1中的instance_eval对象的上下文中查找,而在Ruby 1.8.6中则不是这种情况。Ruby 1.9.1和1.8.6之间instance_eval行为的差异?
Ruby 1.9.1的instance_eval的行为有什么不同?
我不能全部列出,但我知道常量查找有一些变化。在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.9和1.8中的代码,输出相同。 – 2011-10-25 08:36:37