我曾试图将一个类的实例化限制为一个(不使用singleton),但未能成功。我尝试过使用类变量(@@),但没有成功。之后我在谷歌上搜索,找到了以下内容:
class A
@count = 0
class << self
attr_accessor :count
end
def initialize val
@a = val
self.class.count += 1
end
end
a=A.new 42
b=A.new 43
我搜索了关于'class << self'的解释,希望能找到更好的(或者更简单明了的),但是很遗憾没有找到。
最终,在进行了一些测试之后,我得出结论:'class << self'只是一个块包装器,你可以在其中定义类方法。
所以,这是正确的吗?
谢谢!