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

前端之家收集整理的这篇文章主要介绍了ruby – 如何使用嵌套哈希的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而不是#[](如果您愿意).

猜你在找的Ruby相关文章