ハッシュ内の文字列をシンボルに変換する最良の方法 質問する

ハッシュ内の文字列をシンボルに変換する最良の方法 質問する

Ruby でハッシュ内のすべてのキーを文字列からシンボルに変換する (最も高速で、クリーンで、簡単な) 方法は何ですか?

これは YAML を解析するときに便利です。

my_hash = YAML.load_file('yml')

以下が使えるようになりたいです:

my_hash[:key] 

それよりも:

my_hash['key']

ベストアンサー1

Ruby >= 2.5 (ではドキュメント) では以下を使用できます:

my_hash.transform_keys(&:to_sym)

古いバージョンの Ruby を使用していますか? キーをシンボル化したハッシュを新しいハッシュにコピーするワンライナーを次に示します。

my_hash = my_hash.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}

Railsでは以下を使用できます:

my_hash.symbolize_keys
my_hash.deep_symbolize_keys 

おすすめ記事