Ruby中带有示例的Hash.invert方法

Hash.invert方法

在本文中,我们将研究Hash.invert方法。可以借助其名称来预测此方法的工作,但是它并不像看起来那样简单。好吧,我们将在其余内容中借助其语法和程序代码来理解此方法。

方法说明:

此方法是在Ruby库中定义的公共实例方法,特别是针对Hash类。此方法的工作方式是创建一个新的哈希对象,其中自哈希的键是值,而自哈希的值是键。如果哈希对象中已经存在具有相同值的键,则将使用最后一个键,而将丢弃前一个键。此方法是非破坏性方法的示例之一,其中该方法创建的更改是临时的。

语法:

    Hash_object.invert

Argument(s) 需要:

此方法不需要任何参数。

范例1:

=begin
  Ruby program to demonstrate invert method
=end	

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

puts "Hash.invert implementation"
ary = hash1.invert

puts "Hash object after inverting: #{ary}"

puts "Self hash object : #{hash1}"

输出结果

Hash.invert implementation
Hash object after inverting: {"Black"=>"color", "car"=>"object", "friends"=>"love", "Kiwi"=>"fruit", "potato"=>"vege"}
Self hash object : {"color"=>"Black", "object"=>"car", "love"=>"friends", "fruit"=>"Kiwi", "vege"=>"potato"}

说明:

在上面的代码中,您可以观察到我们正在借助Hash.invert方法反转哈希对象。在新的哈希中,键是值,而值是键。您可以看到此方法不会对实际哈希产生任何影响,因为该方法是非破坏性方法的示例之一。

范例2:

=begin
  Ruby program to demonstrate invert method
=end	

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

puts "Hash.invert implementation"
ary = hash1.invert.invert

puts "Hash object after inverting: #{ary}"

puts "Self hash object : #{hash1}"

输出结果

Hash.invert implementation
Hash object after inverting: {"color"=>"Black", "object"=>"car", "love"=>"friends", "fruit"=>"Kiwi", "vege"=>"potato"}
Self hash object : {"color"=>"Black", "object"=>"car", "love"=>"friends", "fruit"=>"Kiwi", "vege"=>"potato"}

说明:

在上面的代码中,您可以观察到我们可以借助Hash.invert方法反转哈希对象。您甚至可以看到我们可以级联方法,并且调用两次invert后得到相同的哈希值。