如果 Ruby 中的所有“函数”都是方法,那么当我调用方法而不明确提及调用它们的对象时,它们会发送给谁?
Ruby Programming Language book (Flanagan & Matsumoto) 说如果对象被省略,方法会在 self 上调用。
所以如果这段代码有效
p "123"
那么这应该工作
self.p "123"
但它没有!
在这种情况下,我在全局范围内运行它,所以 self 是 main 并且 self.class 是 Object。所以我不能在一个简单的 Object 实例上调用 p (这是有道理的)。
我知道 Object 包括声明 p 的内核。解释器如何知道如何访问此声明?