もふもふ技術部

ruby1.9.3 => 2系の変更点を試してみる キーワード引数編


環境はMac Book Air, OSX Lionです。
rubyはRVMを使っています。

キーワード引数

一言で言うとメソッド実行時の引数に key: value っていう渡し方が出来るようになったわけです。文章だけだとわかりづらいですよね。サンプルを。

訪問者宛に挨拶文を出力メソッドを例に見ていきます。

従来の1.9系書き方だと、こんな感じ。

(1)は全ての引数を渡しているだけなので割愛しましょう。

(2)は第1引数のみ渡して、後ろの引数はメソッドに定義されているデフォルト値が適用されます。

問題は(3)です。第2引数のみをデフォルト値にしたい場合に省略する手段がありませんでした。nilを渡すの該当箇所がブランクになってしまいます。

2系からは「キーワード引数」という仕組みが出来たので、上記の問題をクリアすることが出来るようになりました。

(1)は従来と変わりありませんね。

(2)のように明示的に引数のキーワードを指定することが出来るようになりました。

すると(3)のような書き方が出来るようになり、第2引数を省略することが可能になったわけです。

元々はhashを渡すことで実現出来ていたのですが、予期しない引数が渡されたときの例外処理などがシンプルに書けるようになるみたいですね。

ちょっと地味な感じがする機能ですが、ライブラリとかAPI開発時は結構重宝されるかも。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。