在继续之前,非常有必要了解Hash对象的实际含义。哈希是唯一键及其值的集合,这些键与字典非常相似。它们也称为关联数组。他们使用对象而不是数字作为索引。
有一些创建哈希的方法。本文其余部分给出了大多数方法。
方法1:
可以按以下方式以隐式方式创建哈希。
。
语法:
Hash_object = {"Key"=> value, "Key"=> value}
示例
=begin Ruby program to demonstrate Hash creation =end hsh = {"colors" => "red", "letters" => "a", "Fruit" => "Grapes"} puts "Hash contents are : #{hsh}"
输出结果
Hash contents are : {"colors"=>"red", "letters"=>"a", "Fruit"=>"Grapes"}
方法2:
您也可以通过以下方式创建Hash类的实例。
语法:
Hash_object = {:Key=> value, :Key:=> value}
示例
=begin Ruby program to demonstrate Hash creation =end hsh = {:colors => "red", :letters => "a", :Fruit => "Grapes", :Love=> "Self", :vege=>"Potato"} puts "Hash contents are : #{hsh}"
输出结果
Hash contents are : {:colors=>"red", :letters=>"a", :Fruit=>"Grapes", :Love=>"Self", :vege=>"Potato"}
方法3:
您可以通过以下方式在new关键字的帮助下创建Hash对象。
语法:
Hash_object = Hash.new
示例
=begin Ruby program to demonstrate Hash creation =end hsh = Hash.new hsh["color"] = "Black" hsh["age"] = 20 hsh["car"] = "Wrv" hsh["home"] = "mom" hsh["college"]= "geu" puts "Hash contents are : #{hsh}"
输出结果
Hash contents are : {"color"=>"Black", "age"=>20, "car"=>"Wrv", "home"=>"mom", "college"=>"geu"}
方法4:
您可以通过在创建哈希时在Hash类的新方法中传递默认值来创建哈希对象。这将帮助您以某种方式在用户要求的Hash对象中不存在键时将默认值打印为输出。如果未设置默认值,则该方法将返回'nil'。可以通过将值作为新方法内部的参数传递来设置默认值。您也可以使用方法“ default”进行设置。两者的语法在下面给出。
语法:
Hash_object = Hash.new(default_value) or Hash_object = {"Key"=> value, "Key"=> value} Hash_object.default = "default_value"
范例1:
=begin Ruby program to demonstrate Hash creation =end hsh = Hash.new(0) hsh["color"] = "Black" hsh["age"] = 20 hsh["car"] = "Wrv" hsh["home"] = "mom" hsh["college"]= "geu" puts "Hash contents are : #{hsh}" puts hsh["game"]
输出结果
Hash contents are : {"color"=>"Black", "age"=>20, "car"=>"Wrv", "home"=>"mom", "college"=>"geu"} 0
说明:
您可以看到当要求“游戏”键的值时返回了值0,因为该值在哈希中不存在。
范例2:
=begin Ruby program to demonstrate Hash creation =end hsh = Hash.new(0) hsh["color"] = "Black" hsh["age"] = 20 hsh.default = "Not found" puts "Hash contents are : #{hsh}" puts hsh["game"]
输出结果
Hash contents are : {"color"=>"Black", "age"=>20} Not found
说明:
您可以观察到,可以使用默认方法的帮助来传递默认值,该方法也已经存在于Hash类中。