【发布时间】:2015-01-04 15:24:57
【问题描述】:
Ruby Kernel module 文档中的这件事让我很困惑。
据我了解,Kernel 模块包含在 Object 类中。
这样做会使它的所有实例方法都像 Object 的方法一样,因此,任何其他类的方法也是如此。
到现在为止还挺好;然后文档指出:
The Kernel instance methods are documented in class Object while the module methods are documented here
好的。但是话又说回来,所有方法都属于以下部分:
Public Instance Methods
像sprintf、lambda、load、loop 这样的方法在我看来显然是类方法,而不是实例方法,即使它们是“在没有接收者的情况下调用”。
但这不可能是正确的,因为将它们呈现为实例方法有一定的一致性。在左侧的方法框中,它们使用“实例方法约定”调用,即#some_method。
那么这是为什么呢?它们是实例还是其他?如果它们是实例方法,它们与哪个实例相关?
【问题讨论】: