ハッシュのキーをシンボルに変換しようとして
ハッシュのキーをシンボルに変換しようとして、↓のように書いたが動かず。
hash = {"a"=>"aaa", "b"=>"bbb"} p hash.map{|entry| [entry[0].to_sym, entry[1]] }
実行結果です。
[[:a, "aaa"], [:b, "bbb"]]
RubyリファレンスマニュアルのEnumerable#mapによると、
map {|item| ... }
各要素に対してブロックを評価した結果を全て含む配列を返します。
そうか、配列に変換する関数なのか。ということで、injectで。
hash = {"a"=>"aaa", "b"=>"bbb"} p hash.inject({}){|r,entry| r.store( entry[0].to_sym, entry[1] ); r }
実行結果です。
{:a=>"aaa", :b=>"bbb"}