在instance_eval的行为差异1.9.1和1.8.6之间?
题
我注意到,类变量@@ 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
其他提示
我认为[至少目前]不返回自,要么。
不隶属于 StackOverflow