Rubyではメソッドから他のメソッドを呼び出すことができます。
さっそくみていきましょう。
メソッドからメソッドを呼び出す
オブジェクトのメソッドの中から、同じオブジェクトの他のメソッドを呼び出す例を書いてみます。Userクラスを作成し、名前、メールアドレスを持たせています。
class User attr_accessor :name, :email def profile "#{name}(#{email})" end end
実行結果は次の通りです。
>user = User.new >user.name = "山田太郎" >user.email = "test@test.com" >user.profile => "山田太郎(test@test.com)"
このようにprofileメソッドの中で、同じオブジェクトの別メソッドであるnameやemailを呼び出すことができます。
シングルクオーテーションではできない
ちなみにですが、上記の動作はシングルクオーテーションではできません。ダブルクオーテーションのみとなっています。
例えば次のような挙動になります。
>name = "山田太郎" >"#{name}" => "山田太郎" >'#{name}' => '\#{name}'
このような実行結果になります。
シングルクオーテーションの場合#{などがそのまま文字列の一部として認識されるためです。