Ruby中的哈希创建

什么是哈希?

在继续之前,非常有必要了解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类中。