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

fangxing204 · May 04, 2017 · Last by fangxing204 replied at May 04, 2017 · 2049 hits

在 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 Floor has deleted

参考 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)

多谢分享

You need to Sign in before reply, if you don't have an account, please Sign up first.