【发布时间】:2016-07-01 19:09:45
【问题描述】:
Ruby 中这两种方法有什么区别?
class Mod
def doc(str)
...
end
def Mod::doc(aClass)
...
end
end
【问题讨论】:
-
后者在我看来就像一个类方法。不过我会写
def self.doc ... -
感谢您的回复。
-
请注意
Mod.instance_methods(false) #=> [:doc](第一个)和Mod.methods(false) #=> [:doc](第二个)。奇怪的是instance_methods是第一个方法的名称(更常见的是在类上调用),即使实例方法只能在include模块的类的实例上调用(但是,正如 @JörgWMittag 喜欢指出(原文如此),“没有实例方法,只有方法”)。
标签: ruby