Rubyのselfでインスタンスメソッドから別のインスタンスメソッドを呼ぶ

Rubyのselfという変数を使えば現在のレシーバ自身を参照できるので、インスタンスメソッドから別のインスタンスメソッドを作成できる。

class Message
def initialize(name)
@name = name
end
def hello_puts
puts self.hello_message
end
def hello_message
"Hello #{@name}"
end
end
msg = Message.new("Jane")
msg.hello_puts
# Hello Jane

より複雑化したプログラムでは、ひとつひとつの機能をインスタンスメソッド毎に分け、更に別インスタンスからselfを使ってそれぞれの機能が振り分けられたインスタンスメソッドをまとめて読み込むといった処理を行う事がある。
例えば、Ruby on Railsのモデルでカラムデータへはselfを使ってアクセスする。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA