1. ホーム
  2. ルビー

[解決済み】ハッシュで文字列を記号に変換する最適な方法

2022-04-03 01:25:50

質問

Rubyでハッシュのすべてのキーを文字列からシンボルに変換する(最速/最短/最短の)方法は何ですか?

YAMLをパースするときに便利です。

my_hash = YAML.load_file('yml')

使えるようにしたい。

my_hash[:key] 

よりも、むしろ

my_hash['key']

解決方法は?

ルビー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