Groovy拥有太空飞船运营商<=>
,它提供了一种实施比较的简便方法。我怎样才能以更加时髦的方式将其链接到下面的代码?在这个例子中,我想首先按价格比较物品,然后按名称比较物品价格。
class Item implements Comparable {
int price
String name
int compareTo(Item other) {
int result = price <=> other.price
if (result == 0) {
result = name <=> other.name
}
return result
}
}
答案 0 :(得分:22)
由于根据Groovy Truth,如果两者相等并且0为假,则宇宙飞船运算符<=>
返回0,您可以使用elvis运算符?:
来有效地链接排序标准。
class Item implements Comparable {
int price
String name
int compareTo(Item other) {
price <=> other.price ?: name <=> other.name
}
}