ruby - 将字符串转换为哈希符号的最佳方法

标签 ruby hashmap

将散列中的所有键从字符串转换为 Ruby 中的符号的(最快/最干净/最直接)方法是什么?

这在解析 YAML 时会很方便。

my_hash = YAML.load_file('yml')

我希望能够使用:

my_hash[:key] 

而不是:

my_hash['key']

最佳答案

Ruby >= 2.5 ( docs ) 中,您可以使用:

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 

关于ruby - 将字符串转换为哈希符号的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/800122/

相关文章:

ruby - 为什么我的条件语句有选择地删除输出字符串中的第一个字符?

java - 如何用Java编写HashMap的put方法?

Clojure:使用散列作为函数可以吗?

java - 通用类型扩展接口(interface),无法在没有警告的情况下访问接口(interface)方法

java - 按照已设置的顺序迭代 HashMap

ruby-on-rails - Ruby on Rails Scaffold,其中数字作为数据库头

ruby-on-rails - ruby 存储在 mac 上的什么位置?

ruby - 如何在 ruby​​ 1.8.7 中将网页撇号 (’) 转换为 ascii 39

ruby 疯狂 : Class vs Object?

java - 有两个键的 TreeMap