[이펙티브 코틀린] Item42. compareTo의 규약을 지켜라
·
Kotlin/이펙티브 코틀린
compareTo 메서드는 수학적인 부등식으로 변환되는 연산자입니다. obj1 > obj2 // obj1.compareTo(obj2) > 0 obj1 = obj2 // obj1.compareTo(obj2) >= 0 obj1 = a 라면, a == b 여야 한다. 즉, 비교와 동등성 비교에 어떠한 관계가 있어야 하며, 서로 일관성이 있어야 한다. 연속적 동작: a >= b 이고 b >= c 라면, a >= c 여야 한다. 마찬가지로 a > b 이고 b > c 라면, a > c 여야 한다. 이러한 동작을 하지 못하면, 요소 정렬이 무한 반복에 빠질 수 있다. 코넥스적 동작: 두 요소는 어떤 확실한 관계를 갖고 있어야 한다. 즉, a >..