在Ruby中查找两个数组是否相同

在上一篇文章中,我们看到了如何实现<=>运算符来查找两个Array实例之间的区别?

如果第一个Array实例小于第二个Array实例,则对于-1等不同情况,该方法将给出不同的结果。我们可以借助<=>来验证两个Array实例是否相同,也可以使用该运算符将结果抛出0来表示这两个Array实例相同。在本文中,我们将看到另外两种方式,可以通过这种方式找到这种情况的替代解决方案,并且如上所述,查找Array类的两个实例是否相同

当Array类的两个对象相同时,这意味着它们都具有相同的长度并且包含相同的元素值。可以通过==运算符以及.eql?进行检查。方法。好吧,它们都是Ruby库中的Public实例方法。两种方式都会给您一个布尔值的响应,如果Arrays相等,它们将给出true;如果Array实例不相同,它们将得到false。让我们看看它们的语法和示例,以更好地理解它们。

方法1:借助==方法进行检查。

语法:

    array1 == array2

示例

=begin
  Ruby program to demonstrate == operator
=end

# 数组
array1 = [1,"Ramesh","Apple",12,true,nil,"Satyam","Harish"]
array2 = [1,"Ramesh","Apple",12,true,nil,"Satyam","Harish"]

# 比较
rslt = array1 == array2

# 打印结果
if rslt == true
	puts "Both the Array instances are identical"
else
	puts "Array instances are not identical"
end

输出结果

Both the Array instances are identical

说明:

在上面的代码中,您可以观察到我们已经创建了两个Array实例。我们在==运算符的帮助下检查了它们的相等性。我们将布尔结果存储在一个变量中,结果,两个Array实例都相同,因为该方法返回了“ true”

方法2:在.eql?的帮助下进行检查。

语法:

    array1.eql?(array2)

示例

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

# 数组
array1 = [1,"Ramesh","Apple",12,true,nil,"Satyam","Harish"]
array2 = [1,"Ramesh","Apple",12,true,0,"Satyam","Harish"]

# 比较
rslt = array1.eql?(array2)

# 打印结果
if rslt == true
	puts "Both the Array instances are identical"
else
	puts "Array instances are not identical"
end

输出结果

Array instances are not identical

说明:

在上面的代码中,您可以观察到我们已经创建了两个Array实例。我们已经在.eql的帮助下检查了它们的相等性?方法。我们将布尔结果存储在一个变量中,结果,两个Array实例都不相同,因为该方法返回了“ false”