0
BasicObject.class_eval do
def instance(ins)
eval "@#{ins}=#{ins}", binding
end
end
是否有问题的代码。我想要它做的是在下面的代码中,在类Foo中创建一个新的实例变量bar。 运行此代码后,我能得到什么:这是为什么返回错误?
class Foo
bar = 3
end
Foo.instance(:bar)
是:
NameError: undefined local variable or method `bar for Foo:Class
from /Users/Solomon/Desktop/Ruby/instance.rb:3:in `instance'
from /Users/Solomon/Desktop/Ruby/instance.rb:3:in `eval'
from /Users/Solomon/Desktop/Ruby/instance.rb:3:in `instance'
这究竟是为什么。
出于同样的原因在您的上一个问题中给出 - 一旦类声明已经处理,“bar”不存在。 –