加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何使用嵌套哈希的fetch方法?

发布时间:2020-12-16 19:27:14 所属栏目:百科 来源:网络整理
导读:我有以下哈希: hash = {'name' = { 'Mike' = { 'age' = 10,'gender' = 'm' } } } 我可以通过以下方式访问年龄: hash['name']['Mike']['age'] 如果我使用 Hash#fetch 方法怎么办?如何从嵌套哈希中检索密钥? 正如塞尔吉奥所说,做到这一点的方式(不为自己创
我有以下哈希:
hash = {'name' => { 'Mike' => { 'age' => 10,'gender' => 'm' } } }

我可以通过以下方式访问年龄:

hash['name']['Mike']['age']

如果我使用Hash#fetch方法怎么办?如何从嵌套哈希中检索密钥?

正如塞尔吉奥所说,做到这一点的方式(不为自己创造一些东西)将是一系列的获取方法:

hash.fetch('name').fetch('Mike').fetch('age')

解决方法

我所知道的没有内置方法.我在我目前的项目中有这个
class Hash
  def fetch_path(*parts)
    parts.reduce(self) do |memo,key|
      memo[key.to_s] if memo
    end
  end
end

# usage
hash.fetch_path('name','Mike','age')

您可以轻松修改它以使用#fetch而不是#[](如果您愿意).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读