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"가 존재하지 않습니다. –