当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Hash.fetch()用法及代码示例


Hash.fetch() 方法

在本文中,我们将研究 Hash.fetch() 方法。这种方法的用法原理可以通过它的名字来预测,但它并不像看起来那么简单。那么,我们将在其余内容中借助其语法和程序代码来理解该方法。

方法说明:

该方法是ruby库中专门为Hash类定义的公共实例方法。此方法需要通过此方法获取其值的键。此方法的用法方式是为给定的一个或多个键从散列对象返回一个或多个值。如果在散列实例中找不到键,则结果取决于完成的方法调用的类型。下面列出了可能的方法调用:

  • 没有任何其他参数:如果没有提供其他参数并且未找到 key ,则该方法将抛出 "KeyError" 异常。
  • 与其他参数(s):另一个参数被视为默认参数。如果未找到该键,则该方法将返回该默认参数。
  • 带块:如果提供了块但未找到 key ,则将运行该块并在未找到 key 的情况下返回结果。

用法:

    Hash_object.fetch(…,[default]);
    or
    Hash_object_fetch(key(s))
    or
    Hash_object_fetch{|key| block}

所需参数:

传递参数没有限制。您可以根据您的要求传递参数。最后一个参数将始终被视为默认参数。

范例1:

=begin
  Ruby program to demonstrate fetch method
=end	

hash1={"color"=>"Black","object"=>"phone","love"=>"mom","fruit"=>"Kiwi","vege"=>"potato"}

puts "Hash.fetch implementation"

puts "Enter the key you want to search:"
ky = gets.chomp

if(hash1.fetch(ky))
	puts "Key found successfully. The value is #{hash1.fetch(ky)}"
else
	puts "No key found"
end

输出

RUN 1:
Hash.fetch implementation
Enter the key you want to search:
 color
Key found successfully. The value is Black

RUN 2:
Hash.fetch implementation
Enter the key you want to search:
 velvet
key not found:"velvet"
(repl):12:in `fetch'
(repl):12:in `<main>'

说明:

在上面的代码中,您可以简单地观察到我们使用用户询问的 key 调用了该方法。在运行 2 中,您可能会看到在散列中找不到键时抛出异常。

范例2:

=begin
  Ruby program to demonstrate fetch method
=end	

hash1={"color"=>"Black","object"=>"phone","love"=>"mom","fruit"=>"Kiwi","vege"=>"potato"}

puts "Hash.fetch implementation"

puts "Enter the key you want to search:"
ky = gets.chomp

puts "The value of #{ky} is #{hash1.fetch(ky,"Not found")}"

输出

Hash.fetch implementation
Enter the key you want to search:
 cloth
The value of cloth is Not found

说明:

在上面的代码中,您可以观察到我们在方法内部传递了一个默认参数和键。可以看到在hash实例中没有找到key时,返回的是默认对象。

范例3:

=begin
  Ruby program to demonstrate fetch method
=end	

hash1={"color"=>"Black","object"=>"phone","love"=>"mom","fruit"=>"Kiwi","vege"=>"potato"}

puts "Hash.fetch implementation"

puts "Enter the key you want to search:"
ky = gets.chomp

puts "The value of #{ky} is #{hash1.fetch(ky){|ky| "Sorry! #{ky} is missing"}}"

输出

Hash.fetch implementation
Enter the key you want to search:
 cloth
The value of cloth is Sorry! cloth is missing

说明:

在上面的代码中,您可以观察到我们正在与方法一起传递一个块。当在散列对象中找不到键时,该块已运行并已返回其值。



相关用法


注:本文由纯净天空筛选整理自 Hash.fetch() Method with Example in Ruby。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。