理解Ruby消息

Apa*_*101 0 ruby rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

提供一些背景; 在过去的几个月里我一直在学习Ruby(已经阅读了大部分Well-Grounded-Rubyist,完成了Poignant ruby​​指南,并计划在之后阅读Eloquent ruby​​)我已经掌握了大多数概念,即Objects,Ruby内核(基础),范围,循环等等,但是,当涉及到向代码发送消息/方法时,我感到很困惑.

我们以这行代码为例: toolkit = Toolkit.get_default_toolkit

现在toolkit是Toolkit对象的变量,get_default_toolkit是方法/消息.我在大多数代码中发现含糊不清的是方法/消息没有在任何地方定义.所以我的问题是,是否有一个我们(rubyists)可以研究的Kernal消息/方法列表,这些消息/方法是在基础层面上使用的?

或者这些方法是否具有较大的范围,并在程序中的其他位置定义?

mea*_*gar 6

这些方法在类定义中定义,因为它们几乎适用于所有语言.get_default_toolkit不是一些低级方法,你必须通过核心Ruby类来寻找它,它是类的一部分,Toolkit它将被定义在定义类的地方.

存在这样的方法,象那些在所定义KernelObject,但get_default_toolkit不是它们中的一个.

对于任何给定的方法,您可以通过调用object.method('method_name').owner找出它所定义的类,或通过调用找出它的定义位置(文件/行号).source_location.

现在,toolkit是Toolkit对象的变量

措辞的更好方法是它toolkit是一个变量,并且Toolkit是一个类,toolkit现在包含一个新的类实例Toolkit.