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'
がなぜこの出来事です。
前の質問と同じ理由で - クラス宣言が処理された後は「バー」は存在しません。 –