Rubyにおけるメソッドの呼び出し
Rubyでメソッドを呼び出すには以下の文法に従う。
メソッドを呼び出す対象のオブジェクトのことをレシーバと呼ぶ。
オブジェクト.メソッド(引数)
引数を取らないメソッドの場合、または全ての引数にデフォルト値が設定されている場合、括弧と引数を省略できる。
例えば整数をto_s
メソッドで文字列化する場合は以下で良い。
1.to_s
どのようなメソッド呼び出しであっても、括弧は省略することができる。
以下はどちらも同じ意味である。
STDOUT.puts("Hello, World!") STDOUT.puts "Hello, World!"
引数に*
をつけると、配列展開されて、複数の引数を渡したのと同じように処理される。
またRuby 1.9では複数の配列展開をメソッド呼び出しで含めることが可能だ。
以下はすべて同じ意味である。
ary1 = [1, 2] ary2 = [3, 4] obj.some(1, 2, 3, 4, 5) obj.some(*ary1, 3, 4, 5) obj.some(*ary1, *ary2, 5)
レシーバも省略することができる。省略した場合はself
が補われる。
なおprivateメソッドは、レシーバを省略した形でしか呼び出せない。
puts "Hello, World!"