塩焼きブログ

塩焼きに関しての研究内容を公開しています

Rubyで引数をいくつも受け取れるメソッドを自作する

Rubyのメソッド定義の引数部分で*argsのようにすることで、その引数は複数受け取れるようになる。例のように*argsの前後に引数を入れる事もできる。

def hello(msg, *names, num)
  num.times do
    puts msg + " " + names.join(" and ")
  end
end

hello("good-bye", "Tom", "Jane", "Emily", 3)
# good-bye Tom and Jane and Emily
# good-bye Tom and Jane and Emily
# good-bye Tom and Jane and Emily

例の*namesの部分を配列で受け取るようにしても同様の処理が可能だが、配列にする程の量ではない時、*argsのような仕組みとすれば可読性が向上することがある。