在上一篇文章中,我们看到了如何借助<<操作符将对象添加到Array元素中?那是一个公共实例方法。在本文中,我们将看到如何在<=>运算符的帮助下比较两个Array实例?此运算符也是Public实例方法的示例之一。让我们看看如何进行比较。
方法说明
在这种方法的情况下,以元素方式进行比较。有时,结果仅取决于相应Array实例的前几个元素的比较。该方法的工作方式是在<=>运算符的帮助下比较每个Array的每个对象。彼此不相同的前两个元素确定了整个比较的结果。现在,我们将研究一些案例,这些案例将确定在Array类的两个实例之间进行比较的结果。
情况1:当Array小于其他Array时。
此方法的返回类型是整数,当第一个Array实例小于另一个Array实例时,它将返回-1。让我们借助示例来理解这一点,并观察比较的结果。
示例
=begin Ruby program to demonstrate <=> =end # 数组 first_array = ["a","a","c"] second_array = ["a","b","c"] # 比较 rslt = first_array <=> second_array # 打印结果 puts "The result of comparison is #{rslt}"
输出结果
The result of comparison is -1
说明:
您可以观察到比较的结果是-1,因为在两个数组中,差异都在第二个索引处。对象“ a”小于对象“ b”,这就是为什么比较结果为-1的原因。
情况2:当Array大于其他Array时。
此方法的返回类型是整数,当第一个Array实例大于另一个Array实例时,它将返回1。让我们借助示例来理解这一点,并观察比较的结果。
示例
=begin Ruby program to demonstrate <=> =end # 数组 first_array = ["a","c","c"] second_array = ["a","a","c"] # 比较 rslt = first_array <=> second_array # 打印结果 puts "The result of comparison is #{rslt}"
输出结果
The result of comparison is 1
说明:
您可以观察到比较结果为1,因为在两个数组中,差异都在第二个索引处。对象“ c”大于对象“ a”,这就是为什么比较结果为1的原因。
情况3:当两个Array实例相等时。
当两个数组实例相等时,此方法将返回0。当且仅当两个数组的值相同并且第一个数组的长度等于另一个数组的长度时,两个数组实例才被称为相等。让我们借助示例来理解这一点,并观察比较的结果。
示例
=begin Ruby program to demonstrate <=> =end # 数组 first_array = ["a","c","c"] second_array = ["a","c","c"] # 比较 rslt = first_array <=> second_array # 打印结果 puts "The result of comparison is #{rslt}"
输出结果
The result of comparison is 0
说明:
在上面的代码中,您可以观察到两个数组的长度和值都完全相同,这就是为什么比较结果为0的原因。
情况4:两个值不可比。
当两个值彼此不可比时,您将得到“ nil”作为比较的结果。让我们借助示例来理解这一点并观察输出。
示例
=begin Ruby program to demonstrate <=> =end # 数组 first_array = ["a","c","c"] second_array = [1,2,3] # 比较 rslt = first_array <=> second_array # 打印结果 puts "The result of comparison is #{rslt}"
输出结果
The result of comparison is
说明:
在上面的代码中,您可以看到比较的结果是“ nil”,因为不能将整数值与字符值进行比较。