как называется этот оператор и для чего он используется <=> - PullRequest
3 голосов
/ 16 марта 2011

Я недавно столкнулся с этим волшебным оператором, копаясь в Groovy: <=>

Groovy действительно порадовал меня операторами elvis? и?: который я использую постоянно сейчас и очень хотелось бы на Java. С этим новым оператором я нашел только ссылку . Кажется, сделать компараторы намного проще. Мой вопрос заключается в том, как он обрабатывает нулевые значения и как он сравнивает не сопоставимый объект. У этого оператора есть имя, я не могу его найти. Гуглинг.

Ответы [ 4 ]

5 голосов
/ 16 марта 2011

Он называется оператором космического корабля и также обычно используется для сравнения в Ruby.

http://www.objectpartners.com/2010/02/08/the-groovy-spaceship-operator-explained/

5 голосов
/ 16 марта 2011

Вы получили список операторов здесь .Это называется оператор "Космический корабль". обрабатывает ноль без проблем .

2 голосов
/ 16 марта 2011

Имя: Оператор космического корабля

Используемый им метод: a.compareTo (b) // где a и b - использованные переменные

Класс: java.lang.Comparable

И эта ссылка объясняет об этом операторе немного больше.Нажмите Здесь

1 голос
/ 16 марта 2011

Как и многие другие, это называется оператором космического корабля.Вот мой тест:

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
...