在本文中,我们将研究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后得到相同的哈希值。