我最近在深入研究Groovy时遇到了这个神奇的算子:< =>
Groovy真的让我对elvis运营商满意吗?和?:我现在经常使用,非常希望用Java。有了这个新的运算符,我只找到了这个reference。它似乎使比较器更容易。我的问题是它如何处理空值以及它如何比较非Comparable对象。这个运营商是否有名称,我找不到谷歌搜索。
答案 0 :(得分:5)
你得到了a list of operators here。它被称为“太空船”运营商。它handles null without problem。
答案 1 :(得分:5)
它被称为宇宙飞船运营商,也常用于Ruby中的比较。
http://www.objectpartners.com/2010/02/08/the-groovy-spaceship-operator-explained/
答案 2 :(得分:2)
答案 3 :(得分:1)
像许多其他人一样,它被称为宇宙飞船运营商。这是我的测试:
def a
def b
println 1 <=> 0 // 1
println 0 <=> 1 // -1
println 1 <=> a // 1
println b <=> 0 // -1
println a <=> b // 0
println "abc" <=> "def" // -1
println "abc" <=> 1 // throw exception: java.lang.ClassCastException