rubyの可変長引数

メソッドの引数で*hogeが気になっていました。

*がついている引数を可変長変数といいます。

意味

コンピューターで,処理単位の長さを変えられるようにしたもの。ファイルを小さくできる。 可変長(かへんちょう)とは - コトバンク

メソッドでは、処理単位の数が変化すると捉えることができます。

具体的な使い方になります。

使用例

def greet(name, *messages)
  messages.each do |message|
    puts "#{name}:#{message}"
  end
end

greet('mikami', 'good morning', 'hello', 'goodbye')
→
mikami:good morning
mikami:hello
mikami:goodbye

messagesの引数の数によって、messageの数が変化しています。

まとめ

引数が不明な場合は、可変長変数を使うことで、メソッドがコンパクトになります。