在本文中,我们将研究Hash.flatten方法。可以借助其名称来预测此方法的工作,但是它并不像看起来那样简单。好吧,我们将在其余内容中借助其语法和程序代码来理解此方法。
方法说明:
此方法是在Ruby库中定义的公共实例方法,特别是针对Hash类。此方法的工作方式是在展平整个哈希对象后返回一个数组对象。这意味着每个键值对都将转换为数组对象,或者可以说它将成为Array对象的单个元素。此方法是一种非破坏性方法,这意味着此方法创建的更改不会影响实际的哈希实例。
语法:
Hash_object.flatten or Hash_object.flatten(level)
Argument(s)
需要:
此方法仅接受一个参数,该参数不过是您要对哈希对象进行的展平级别。
范例1:
=begin Ruby program to demonstrate flatten method =end hash1={"color"=>"Black","object"=>["car","phone"],"love"=>["mom","friends"],"fruit"=>"Kiwi","vege"=>"potato"} puts "Hash.flatten implementation" ary = hash1.flatten puts "Hash object after flatten: #{ary}" puts "Self hash object : #{hash1}"
输出结果
Hash.flatten implementation Hash object after flatten: ["color", "Black", "object", ["car", "phone"], "love", ["mom", "friends"], "fruit", "Kiwi", "vege", "potato"] Self hash object : {"color"=>"Black", "object"=>["car", "phone"], "love"=>["mom", "friends"], "fruit"=>"Kiwi", "vege"=>"potato"}
说明:
在上面的代码中,您可以观察到我们在Hash.flatten方法的帮助下对哈希对象进行了展平。已经完成了第一级扁平化,其中所有哈希元素现在都成为数组的一部分。您可以看到此方法不会对实际哈希产生任何影响,因为该方法是非破坏性方法的示例之一。
范例2:
=begin Ruby program to demonstrate flatten method =end hash1={"color"=>"Black","object"=>["car","phone"],"love"=>["mom","friends"],"fruit"=>"Kiwi","vege"=>"potato"} puts "Hash.flatten implementation" puts "Enter the level of flatten" lvl = gets.chomp.to_i ary = hash1.flatten(lvl)puts "Hash object after flatten: #{ary}" puts "Self hash object : #{hash1}"
输出结果
Hash.flatten implementation Enter the level of flatten 2 Hash object after flatten: ["color", "Black", "object", "car", "phone", "love", "mom", "friends", "fruit", "Kiwi", "vege", "potato"] Self hash object : {"color"=>"Black", "object"=>["car", "phone"], "love"=>["mom", "friends"], "fruit"=>"Kiwi", "vege"=>"potato"}
说明:
在上面的代码中,您可以观察到我们在Hash.flatten方法的帮助下对哈希对象进行了展平。已经完成了第二级扁平化,其中所有哈希元素现在都成为数组的一部分。您可以看到此方法不会对实际哈希产生任何影响,因为该方法是非破坏性方法的示例之一。