Ruby2.1のリリース
Ruby2.1は2013年12月にリリースされ、リリースから半年が経過した執筆時点(2014年7月)における最新版は2.1.2
です。
Ruby2.1の紹介に先立ってまず覚えておいて欲しいのは、2.1からバージョニングの法則が変更されたことです。 Ruby2.0においては、「2.0.0-p0」「2.0.0-p451」のように、バージョン表記のあとにパッチ数が付与されていました。2.1からはこれを廃止して「2.1.0」「2.1.1」...と上がっていくようになります。
さて、今回の記事ではRuby2.1で追加された新機能や新構文を紹介していきます。具体的なラインナップは以下の通りです。
Array#to_h
:Hash[array]
の糖衣構文- 有理数と複素数のsuffixリテラル
Exception#cause
: 先祖の例外を記憶するModule#refine
+ using: 範囲を限定したクラスの拡張
なお2.0で導入され2.1で改良された「キーワード引数」については 3/3 Ruby2.0の新機能キーワード引数の紹介と、2.1での改良点 を参照してください。
Array#to_h
まずはライトなArray#to_h
から紹介します。
前回の記事 pryを使ってRailsアプリケーションをデバッグする Ruby All About の復習がてら、pry REPL内からドキュメントを見てみましょう(以降のページでは省略しますが、新機能にかぎらず知らない機能の手触りを確かめる時にpryを使うと便利です)。
[[key, value], [key, value]...]
という形の配列を元に{key => value, key => value...}
というHashが作成されます。要素が1個でも配列は二重にする必要があるので注意してください。
実はRuby2.0以前でも以下のように書けば同じことは出来たのですが、to_h
の方が意図が明確で可読性が高くなったのではないかと思います。
次のページでは有理数と複素数のsuffixリテラル、Exception#cause
を扱います。