読者です 読者をやめる 読者になる 読者になる

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] } ]

これだと #mapblock の引数がリストになってしまうのでちょっと微妙か。