我只是被小精灵弄湿了。我知道 gremlin 是基于 groovy 的。我在这里找到了文档,但我仍然不确定语法的含义。
我对带有比较器的排序语法如何工作感到有些困惑:
m.sort{a,b -> a.value <=> b.value}
有人可以解释{
和之间的所有不同位}
是什么意思吗?
当Closure
used bysort
有两个参数时,它就像传统的Comparator
. 也就是说,对于排序期间在两个元素a
和之间进行的每次比较b
,它返回一个负整数、零或正整数,因为第一个参数小于、等于或大于第二个。
在您的特定场景中,比较是使用spaceship operator <=>
的结果。换句话说,您正在有效地按升序对元素进行排序。
例如,如果您有 list [ 3, 2, 1 ]
,则使用该排序的结果将是 [ 1, 2, 3 ]
。
因此,m.sort{a,b -> a.value <=> b.value}
大致相当于使用以下compare
函数:
int compare(a, b) {
if (a < b) {
return -1;
} else if (a > b) {
return 1;
} else {
return 0;
}
}