在本文中,我们将研究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>'
说明:
在上面的代码中,您可以观察到我们正在从哈希对象中挖掘值,该哈希对象具有一个键,其值是一个整数数组。如果是数组类型,则最多只能有一个值和一个键。