QA@IT

(Ruby)Array#to_hからハッシュ生成する方法のコードでエラーが出ます

3669 PV

Ruby公式資格教科書 Ruby技術者認定試験Silver/Gold対応にてRubyを勉強しているのですが
P76記載の表題の件でエラー原因がわからなくて困っています。

#Hashのクラスメソッド[]から生成する方法
a = Hash[:hoofoo1, 1, :foofoo2, 2, :hoofoo3, 3]
実行結果=> {:hoofoo1=>1, :foofoo2=>2, :hoofoo3=>3}
(こちらは教書の通り正常に実行できています)

#Array#to_hから生成する方法、どちらも同じ結果になります。
a = [[:foo1, 1], [:foo2, 2], [:foo3, 3]].to_h
実行結果NoMethodError: undefined method `to_h' for [[:foo1, 1], [:foo2, 2], [:foo3, 3]]:Array

上記の通りArray#to_hの場合同じ結果にならずNoMethodErrorになってしまうのですがエラーの原因がわからなくて困っています。
原因がわかりましたら教えていただけないでしょうか

rubyのバージョン:2.2.3p173
OS:MAC OSX yosemite

回答

Array#to_h は Ruby 2.1 から導入されました。
Ruby のバージョンが 2.2.3p173 ということですが、実は 2.0 や 1.9.3 を使ってるということはないでしょうか。
ruby -v でバージョンを確認することが出来ます。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。