Ruby で Hash のキーを文字列からシンボルに変換する
と、いうのをやりたかった。
以下のようにやるのが簡単かな?
h = { "name" => "homu", "age" => 14 } Hash[ h.map{ |k, v| [k.to_sym, v] } ] # => {:name=>"homu", :age=>14}
[おまけ]
ついでに iolite を使ってやってみた。
require "iolite" require "iolite/adaptored/array" include Iolite::Placeholders h = { "name" => "homu", "age" => 14 } Hash[ h.map &[arg1[0].to_sym, arg1[1]] ] # Hash[ h.map{ |k, v| [k.to_sym, v] } ]
これだと #map
の block
の引数がリストになってしまうのでちょっと微妙か。