在这里开始编程,只是想在使用太空船操作符< =>时理解
Ruby的排序方法背后的过程.希望有人能提供帮助.
在下面的:
array = [1,2,3] array.sort { |a,b| a <=> b }
…我明白,那种方式是一次比较一对数字然后如果a属于b之前返回-1,如果它们相等则返回0,如果a应该跟随b则返回1.
但是在按降序排序的情况下,如下所示:
array.sort { |a,b| b <=> a }
……究竟发生了什么?排序仍比较< => b然后翻转结果?或者它是否以反向行为解释-1,0和1的回报?
换句话说,为什么要将变量放在块中,如下所示:
array.sort { |b,a| b <=> a }
…导致与第一个例子中相同的排序模式?