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


Ruby Hash.transform_values用法及代码示例


Hash.transform_values 方法

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

方法说明:

该方法是ruby库中专门为Hash类定义的公共实例方法。此方法的用法方式是为每个散列值至少运行一次提供的块并返回一个新的散列。如果您在调用方法时没有随方法一起提供任何块,则将返回一个枚举器。

这种方法不会带来实际散列的变化,因为这种方法属于非破坏性方法的范畴。

用法:

    Hash_object.transform_values
    or
    Hash_object.transform_values{|value| block}

所需参数:

此方法不接受任何参数,您可以提供一个块以获得更好的实现。

范例1:

=begin
  Ruby program to demonstrate transform_values method
=end	

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

puts "Hash transform_values implementation"

hsh = hash1.transform_values{|val| val+val}

puts  "Value hash is #{hsh}"

puts "Self hash object:#{hash1}"

输出

Hash transform_values implementation
Value hash is {"color"=>"BlackBlack", "object"=>"carcar", "love"=>"friendsfriends", "fruit"=>"KiwiKiwi", "vege"=>"potatopotato"}
Self hash object:{"color"=>"Black", "object"=>"car", "love"=>"friends", "fruit"=>"Kiwi", "vege"=>"potato"}

说明:

在上面的代码中,您可以观察到我们正在 Hash.transform_values() 方法的帮助下更新哈希对象的值。您可以看到所有值都按其名称进行了更新。此方法不会在实际散列对象中创建更改,因为此方法是非破坏性方法的示例之一。

范例2:

=begin
  Ruby program to demonstrate transform_values method
=end	

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

puts "Hash transform_values implementation"

hsh = hash1.transform_values

puts  "Value hash is #{hsh}"

puts "Self hash object:#{hash1}"

输出

Hash transform_values implementation
Value hash is #<Enumerator:0x0000559e6dc742f8>
Self hash object:{"color"=>"Black", "object"=>"car", "love"=>"friends", "fruit"=>"Kiwi", "vege"=>"potato"}

说明:

在上面的代码中,您可以观察到,当我们在不传递任何块的情况下调用该方法时,该方法正在返回一个枚举器。



相关用法


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