ruby,内核模块方法文档

时间:2015-01-04 15:24:58

标签: ruby module

Ruby Kernel module文档中的这件事让我感到困惑。

据我所知,内核模块包含在Object类中。
这样做会使其所有实例方法成为Object的方法,因此,任何其他类的方法。
到现在为止还挺好;那时医生说:

The Kernel instance methods are documented in class Object while the module methods are documented here

确定。但话说回来,所有方法都属于以下部分:

Public Instance Methods

sprintflambdaloadloop这样的方法在我看来显然是类似于类的方法,而不是实例方法,即使它们是“没有调用”接收器”。
但这不可能是正确的,因为将它们作为实例方法呈现有一定的一致性;在左边的方法框中,用“实例方法约定”调用它们,即#some_method。 那么为什么呢?他们是实例还是其他什么?如果它们是实例方法,它们与哪个实例相关?

1 个答案:

答案 0 :(得分:1)

Object本身就是一个对象。当Object中包含Kernel时,其实例方法成为Object的实例方法,但也成为对象Object的实例方法(对象的a.k.a类方法)。是的,这意味着对象Object在其班级中有Object'祖先链。

Object.class.ancestors#=> [类,模块,对象,内核,BasicObject]