在 ruby 中 Hash 即可以用 symbol key 也可以用 string key。 作为一个新手,在不知道之前,真的很苦恼,踩过的坑有:sidekiq 中通常用 string key, 还有调用外部 api 返回 json 结果时也只能用 string key。 我知道有个方法可以把 string key 转成 symbol key,但是觉得的这么做不爽。 有没有方法,让 Hash 把 symbol key 和 string key 当成一样的呢?
如果是在 rails 中可以用:with_indifferent_access
hashie
参考 https://github.com/jeremyevans/rack-indifferent/blob/master/lib/rack/indifferent.rb
INDIFFERENT_PROC = lambda{|h,k| h[k.to_s] if k.is_a?(Symbol)} Hash.new(&INDIFFERENT_PROC)
多谢分享