在Ruby中,将散列中的所有键从字符串转换为符号(最快/最干净/最直接)的方法是什么?
这在解析YAML时非常方便.
my_hash = YAML.load_file('yml')
我希望能够使用:
my_hash[:key]
而不是:
my_hash['key']
在Ruby中,将散列中的所有键从字符串转换为符号(最快/最干净/最直接)的方法是什么?
这在解析YAML时非常方便.
my_hash = YAML.load_file('yml')
我希望能够使用:
my_hash[:key]
而不是:
my_hash['key']
In Ruby >= 2.5 (docs) you can use:
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