class Person
class << self
def species
"Homo Sapien"
end
end
end
为什么我需要使用class&lt;&lt;自我?
有什么好处? 我为什么需要它?
答案 0 :(得分:1)
在class << self
内声明的任何方法都将在类实例上定义,而不是在类的实例上定义。在上面的示例中,您可以拨打Person.species
但不能Person.new.species
。
答案 1 :(得分:1)
class << obj
允许您访问obj
的元类(也称为特征类或单例类),该构造中的所有内容都在该元类的上下文中执行。 self
直接在类定义中引用该类,因此在您的示例中,方法species
被定义为Person
上的类方法。