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」不存在。 –