在本文中,我们将研究Hash.dig()方法。可以借助其名称来预测此方法的工作,但是它并不像看起来那样简单。好吧,我们将在其余内容中借助其语法和程序代码来理解此方法。
方法说明:
此方法是在ruby库中定义的公共实例方法,特别是针对Hash类。此方法的工作方式是取出一系列关键对象之后存储的嵌套值。遍历的每个步骤都会调用dig方法。在任何特定步骤均未找到任何值时,将返回“ nil”。
语法:
Hash_object.dig(obj, ...)
Argument(s) 需要:
您可以在此方法内传递任意数量的参数。但是,至少有一个论点是强制性的。
范例1:
=begin
Ruby program to demonstrate dig method
=end
hsh = {country:{state:{city:"Haridwar"}}}
puts "Hash dig implementation"
if(hsh.dig(:country,:state,:city))
puts "The value is #{hsh.dig(:country,:state,:city)}"
else
puts "Value not available"
end输出结果
Hash dig implementation The value is Haridwar
说明:
在上面的代码中,您可以观察到我们正在从哈希对象中挖掘一些值。我们在dig方法中传递了三个参数,即国家,州和城市。该方法遍历了哈希对象,直到找不到该值为止。如果在挖掘过程中未在哈希对象内找到任何值,则该方法必须返回“ nil”。
范例2:
=begin
Ruby program to demonstrate dig method
=end
hsh = { foo: [10, 11, 12] }
puts "Hash dig implementation"
puts hsh.dig(:foo, 1)
puts hsh.dig(:foo, 1, 0)
puts hsh.dig(:foo, :bar) 输出结果
Hash dig implementation 11 Integer does not have (repl):10:in `dig' (repl):10:in `<main>'
说明:
在上面的代码中,您可以观察到我们正在从哈希对象中挖掘值,该哈希对象具有一个键,其值是一个整数数组。如果是数组类型,则最多只能有一个值和一个键。