メソッド実行中は常に自分自身(メソッドが呼び出されたインスタンス)が 誰であるかという情報が保存されており、selfでその情報を取ることができる。
# -*- coding: utf-8 -*- class Hoge def get_self return self end def hoge # selfはあってもなくてもどっちでもいい fuga end def fuga puts 'fuga' end end hoge = Hoge.new puts hoge # #<Hoge:0x10624bda8> puts hoge.get_self # #<Hoge:0x10624bda8> puts hoge == hoge.get_self # true puts hoge === hoge.get_self # true hoge.hoge # fuga
hogeとhoge.get_selfが同一のオブジェクトであることが確認できる