class Module
def class_attr_accessor(attribute_name)
class_eval <<-CODE
def self.#{attribute_name}
@@#{attribute_name} ||= nil
end
def self.#{attribute_name}=(value)
@@#{attribute_name} = value
end
CODE
end
end
class TestClass
class_attr_accessor :var
end
1条答案
按热度按时间jogvjijk1#
我不知道你到底在问什么。当然,类变量可以有getter和setter(在后台,你可以以任何你喜欢的方式存储值)。这段文字有助于阐明什么吗?
字符串
如果你对整个元编程很感兴趣,你可以实现一个类似于attr_accessor方法的class_attr_accessor方法。下面的代码相当于上面的代码。
型