元编程第 6 章:
def add_checked_attribute(klass, attribute)
eval "
class #{klass}
def #{attribute}=(value)
raise 'Invalid attribute' unless value
@#{attribute} = value
end
def #{attribute}()
@#{attribute}
end
end
"
end
add_checked_attribute(String, :my_attr)
"Daniel".my_attr = "ruby"
p "Daniel".my_attr
我的返回结果是 nil, 看了半天,不知道问题在哪?求助,谢谢。