Hash.dig()方法与Ruby中的示例

Hash.dig()方法

在本文中,我们将研究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>'

说明:

在上面的代码中,您可以观察到我们正在从哈希对象中挖掘值,该哈希对象具有一个键,其值是一个整数数组。如果是数组类型,则最多只能有一个值和一个键。