擬似的なキーワード引数を使う
このエントリではRuby 1.8と1.9で良く使われる擬似的なキーワード引数について説明する。Ruby 2.0にはキーワード引数が追加されたが、本エントリでは扱わない。
Rubyはキーワード引数をサポートしていないので、ハッシュをキーワード引数に見立てて使うことが良く行われる。呼び出されるメソッドはハッシュを受け取るように定義しておく。キーワード引数の解釈などはすべてメソッドの処理の中で行う。
def method(hash = {}) p hash end
このメソッドの呼び出しは以下のようにするのが一般的だ。Rubyではハッシュを1つ渡す場合はブレース{}
を省略することができる。またRuby 1.9からはシンボルを使ったハッシュをさらに簡潔に書けるようになった。
method({:foo => 1, :bar => 2, :buz => 3}) method(:foo => 1, :bar => 2, :buz => 3) method(foo:1, bar:2, buz:3) # Ruby 1.9のみ