Ruby中带有示例的Hash.eql?()方法

Hash.eql?()方法

在本文中,我们将研究Hash.eql?()方法。可以借助其名称来预测此方法的工作,但是它并不像看起来那样简单。好吧,我们将在其余内容中借助其语法和程序代码来理解此方法。

方法说明:

此方法是在ruby库中定义的公共实例方法,特别是针对Hash类。此方法的工作方式是在两个哈希之间进行比较。第一个哈希将是已在其上调用此方法的哈希对象,第二个哈希将是已随该方法传递的哈希对象。Hash.eql?()方法返回一个布尔值,如果两个哈希值相等,则返回true;如果两个哈希值都不相同,则返回false。不比较每个哈希的顺序。如果两个散列包含相同数量的键,并且那里的键值应与另一个散列对象中的对应对象相同,则认为它们是相等的。

语法:

    Hash_object.eql?(hash_object1)

Argument(s) 需要:

此方法仅接受一个参数。传递的哈希对象是将与第一个对象进行比较的对象。

范例1:

=begin
  Ruby program to demonstrate .eql? operator
=end	

hash1={"color"=>"Black","object"=>"phone","love"=>"mom","fruit"=>"Kiwi","vege"=>"potato"}
hash2={"color"=>"Black","object"=>"phone","love"=>"mom","fruit"=>"Kiwi","vege"=>"potato"}

puts "Hash.eql? implementation"

if(hash1.eql?(hash2))
	puts "hash1 is equal to hash2"
else
	puts "hash1 is not equal to hash2"
end

输出结果

Hash.eql? implementation
hash1 is equal to hash2

说明:

在上面的代码中,您可以简单地观察到,如果条件是因为消息被打印为“ hash1等于hash2”,则该方法在true内部返回了true 。发生这种情况是因为hash1具有hash2中存在的所有元素,或者它等于hash2。

范例2:

=begin
  Ruby program to demonstrate .eql? operator
=end	

hash1={"color"=>"Black","object"=>"phone","love"=>"mom","fruit"=>"Kiwi","vege"=>"potato"}
hash2={"object"=>"phone","fruit"=>"Kiwi","vege"=>"potato","love"=>"mom","color"=> "Black"}

puts "Hash.eql? implementation"

if(hash1.eql?(hash2))
	puts "hash1 is equal to hash2"
else
	puts "hash1 is not equal to hash2"
end

输出结果

Hash.eql? implementation
hash1 is equal to hash2

说明:

在上面的代码中,您可以观察到该方法没有强调每个哈希对象的顺序。它只是意味着无论元素在两个哈希中存储的顺序如何,如果元素相同,则两个哈希相等,否则不相等。