當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。