【发布时间】:2017-10-01 17:20:49
【问题描述】:
当我们使用排序时,为什么数组中的第二项是第一个元素 (a)。 看看这个例子,有什么我没有得到的吗?
def array = [4,2,7]
def listSorter = {a,b ->
println "a: " + a;
println "b: " + b;
a <=>b;
}
array = array.sort(listSorter);
println array;
打印这个:
a: 2
b: 4
a: 7
b: 2
a: 7
b: 4
[2, 4, 7]
【问题讨论】:
-
参数的顺序无所谓吧?这是一个实现细节
-
是的,没错,我想我想了解这里的排序机制是什么。它是如何排序的?为什么 a, b -> a b 进行 asc 排序,而 a, b -> b a 进行 desc 排序?我假设 a b 等于 (a > b) ?返回 1 : (a
-
是的,和比较器一样