在本文中,我们将研究Hash.default(key = nil)方法。可以借助其名称来预测此方法的工作,但是它并不像看起来那样简单。好吧,我们将在其余内容中借助其语法和程序代码来理解此方法。
方法说明:
此方法是在ruby库中定义的公共实例方法,特别是针对Hash类。此方法以返回默认值的方式工作,但是现在您将考虑此方法何时将返回默认值。当用户尝试访问哈希中不可用的key值或仅仅是key的值时,此方法将返回默认值,或者您可以说不属于hash对象的一部分。该方法将打印默认值,而不是返回'nil'。
语法:
Hash_object.default or Hash_object.default(object)
Argument(s)
需要:
在此方法中传递值是可选的。如果要传递值,则该值可以是任何类的对象。
范例1:
=begin Ruby program to demonstrate default method =end hsh = Hash.new("Not available") hsh["color"] = "Black" hsh["age"] = 20 hsh["school"] = "Angels' Academy Haridwar" hsh["college"] = "Graphic Era University" puts "Hash default implementation" puts "Hash contents are : #{hsh}" puts "default value : #{hsh.default}"
输出结果
Hash default implementation Hash contents are : {"color"=>"Black", "age"=>20, "school"=>"Angels' Academy Haridwar", "college"=>"Graphic Era University"} default value : Not available
说明:
在上面的代码中,您可以看到我们已经在new方法的帮助下设置了默认值。我们正在借助默认方法访问该默认值。默认值为“不可用”,只要在哈希对象中找不到键,就将返回此值。
范例2:
=begin Ruby program to demonstrate default method =end hsh = Hash.new { |hash, key| hsh[key] = "Hello : #{key}" } hsh["color"] = "Black" hsh["age"] = 20 hsh["school"] = "Angels' Academy Haridwar" hsh["college"] = "Graphic Era University" puts "Hash default implementation" puts "Hash contents are : #{hsh}" puts "default value : #{hsh.default(2)}"
输出结果
Hash default implementation Hash contents are : {"color"=>"Black", "age"=>20, "school"=>"Angels' Academy Haridwar", "college"=>"Graphic Era University"} default value : Hello : 2
说明:
在上面的代码中,您可以观察到我们已经通过将新的块传递给新方法来设置了默认值。我们正在借助默认方法访问该默认值。默认值为“ Hello:key”,只要在哈希对象中未找到该键,就会返回该值。我们将键与方法一起传递,当键丢失时,键将与值一起返回。