我正在阅读有关Ruby模块方法的解释,以及它们与类的实例方法不同之处。以下是我正在阅读的解释:
请记住,与实例方法不同,模块方法需要在模块本身上定义。如何访问模块?请回想起,在模块定义内部,self指的是正在定义的模块。因此,您将需要使用self.xxx的形式来定义该方法。
我并不完全理解。当我们在类中定义方法时,我们不必在类本身上定义它。我们仅仅在类的实例化对象上调用它。
为什么我们需要使用术语“self”在模块本身上定义模块方法?这样做的目的是什么?我们为什么不能不使用术语self来定义模块方法?以下是我的模块框架:
module GameTurn
def self.take_turn(player)
end
self
来定义它。 - tadmanExampleClass
中添加include Example
(或在定义类之后调用ExampleClass.include Example
),则可以使用实例方法Example#mixin_method
,就像您在类中定义它一样,但是您不会“获得”模块方法Example.exposed_method
,即您无法调用ExampleClass#.exposed_method
。您必须使用Example.exposed_method
。有一种方法可以将模块mixin方法作为类方法引入类中,但是在您的Ruby教育阶段,您不必担心这个问题。 - Cary Swoveland