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


Ruby Hash.keep_if用法及代码示例


Hash.keep_if 方法

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

方法说明:

该方法是ruby库中专门为Hash类定义的公共实例方法。此方法的用法方式是从块已评估为假的哈希对象中删除每个键值对。如果您不提供任何块,则此方法将返回一个枚举器。

此方法是破坏性方法的示例之一,其中由方法创建的更改是永久性的或非临时性的。

用法:

    Hash_object.keep_if
    or
    Hash_object.keep_if{|key,value| block}

所需参数:

此方法不需要任何参数。您将需要传递一个包含该方法的块以更好地实现。

范例1:

=begin
  Ruby program to demonstrate keep_if method
=end	

hash1={"color"=>"Black","object"=>"car","love"=>"friends","fruit"=>"Kiwi","vege"=>"potato"}

puts "Hash keep_if implementation"

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

puts "Hash after keep_if:#{hash1.keep_if{|key,value| key==ky}}"

puts "Self hash object:#{hash1}"

输出

Hash keep_if implementation
Enter the key you want to keep:
 color
Hash after keep_if:{"color"=>"Black"}
Self hash object:{"color"=>"Black"}

说明:

在上面的代码中,您可以观察到我们在 Hash.keep_if 方法的帮助下从哈希对象中删除元素。您可以看到该方法正在删除该方法返回 false 的所有元素。此方法是破坏性方法的示例之一,因为它会在自哈希对象中创建更改。

范例2:

=begin
  Ruby program to demonstrate keep_if method
=end	

hash1={"color"=>"Black","object"=>"car","love"=>"friends","fruit"=>"Kiwi","vege"=>"potato"}

puts "Hash keep_if implementation"

puts "Hash after keep_if:#{hash1.keep_if}"
puts "Self hash object:#{hash1}"

输出

Hash keep_if implementation
Hash after keep_if:#<Enumerator:0x000055f1998a3b90>
Self hash object:{"color"=>"Black", "object"=>"car", "love"=>"friends", "fruit"=>"Kiwi", "vege"=>"potato"}

说明:

在上面的代码中,您可以观察到此方法在调用时返回一个枚举数,而在调用时不提供任何块。



相关用法


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