什么是Ruby <=>
(太空飞船)运算符?运算符是否由其他任何语言实现?
@SF,当人们比较数组时,它们通常意味着按字典顺序进行比较(就像在字典中一样,即[1,3,2] <[2,2,2],因为第一个元素是不同的)。很少(在Matlab中为fe)数组比较返回每个元素一个结果数组。在这种情况下:[-1,1,0]。
—
liori
请注意,如果任何nil之前的元素不同,则包含nil元素的数组是可比较的,如果必须将nil与非nil比较,则该数组是不可比较的。即[1,nil] <=> [2,3] => -1,但[1,nil] <=> [1,3] => nil。基本上,这很烂。
—
cliffordheath
当比较数组时,由于算法的一致性,
—
lilole
[1,nil] <=> [1,3]
得到a时nil
,请依次比较每个元素,直到<=>
结果为NOT 0
。在此示例中,Ruby无法声明小于或大于。因为无法进行比较。的nil
应视为“不相等”。如果您对数据有所了解,例如想要将其nil
视为0
,那么Ruby会使其变得容易。
[1,3,2] <=> [2,2,2]
?