新手问题 Ruby 中 hash key 的问题, symbol key, string key

fangxing204 · 2017年05月04日 · 最后由 fangxing204 回复于 2017年05月04日 · 2051 次阅读

在 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

3 楼 已删除

参考 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)
需要 登录 后方可回复, 如果你还没有账号请 注册新账号