这里是初学程序员,只是想了解一下 Rubysort使用 spaceship operator 的方法背后的过程<=>。希望有人可以提供帮助。
在下面的:
array = [1, 2, 3]
array.sort { |a, b| a <=> b }
...我知道这sort是一次比较一对数字,然后返回-1ifa属于 before b,0如果它们相等,或者1if ashould follow b。
但是在降序排序的情况下,像这样:
array.sort { |a, b| b <=> a }
...到底发生了什么?是否sort仍然比较a <=> b然后翻转结果?或者它是在解释 , 的sreturn并且具有相反的行为?-101
换句话说,为什么要像这样将变量放在块中:
array.sort { |b, a| b <=> a }
...导致与第一个示例相同的排序模式?