Ruby のすべての「関数」がメソッドである場合、メソッドが呼び出されるオブジェクトを明示的に言及せずにメソッドを呼び出すと、メソッドは誰に送信されますか?
Ruby プログラミング言語の本 (Flanagan & Matsumoto) には、オブジェクトを省略した場合、メソッドは自分自身で呼び出されると書かれています。
したがって、このコードが機能する場合
p "123"
次に、これは機能するはずです
self.p "123"
しかし、そうではありません!
この場合、これをグローバル スコープで実行したので、self がメインで、self.class が Object です。したがって、単純な Object インスタンスで p を呼び出すことはできません (これは理にかなっています)。
オブジェクトには p が宣言されているカーネルが含まれていることを理解しています。インタプリタは、この宣言にアクセスする方法をどのように知っていますか?