Ruby hash.dig 使用数组作为参数?

spu*_*der 2 ruby hash

我有一个嵌套的数据哈希

foo => {
  'user' => { 
    'address' => {
      'street' => '1234'
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用 Hash.dig 访问这些值

foo.dig('user', 'address', 'street')
1234
Run Code Online (Sandbox Code Playgroud)

当值是可变的并且在数组中定义时,您将如何使用 hash.dig?

query=["users", "address", "street"]
  
foo.dig(query) # <= doesn't work  
foo.dig(query.to_s) # <= doesn't work  
Run Code Online (Sandbox Code Playgroud)

查看 ruby​​ 文档,Hash.dig 似乎采用多个参数,但不采用数组

https://ruby-doc.org/core-2.3.0_preview1/Hash.html#method-i-dig

Ale*_*nko 7

您可以使用 splat 运算符以这种方式将数组拆分为参数列表:

foo.dig(*query)
Run Code Online (Sandbox Code Playgroud)