元编程第 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, 看了半天,不知道问题在哪?求助,谢谢。