trait Ordered[A] extends java.lang.Comparable[A] {
def compare(that: A): Int
def < (that: A): Boolean = (this compare that) < 0
def > (that: A): Boolean = (this compare that) > 0
def <= (that: A): Boolean = (this compare that) <= 0
def >= (that: A): Boolean = (this compare that) >= 0
def compareTo(that: A): Int = compare(that)
}
Разве не бесполезно иметь и compare
, и compareTo
?
Какая огромная выгода мне здесь не хватает?
Если бы они только что использовали compareTo
, я мог бы просто заменить Comparable
на Ordered
в моем коде, и все будет готово.