Kotlin Koans: перегрузка оператора - PullRequest
0 голосов
/ 02 марта 2019

Я заканчиваю упражнение Kotlin Koans Сравнение и задаюсь вопросом, почему compareTo() переопределяет функцию, а compare() это используемая функция.

Как работают две функцииотноситесь сюда?

data class MyDate(val year: Int, val month: Int, val dayOfMonth: Int) : Comparable<MyDate> {
    override fun compareTo(otherDate: MyDate): Int = when {
        year != otherDate.year -> year - otherDate.year
        month != otherDate.month -> month - otherDate.month
        else -> dayOfMonth - otherDate.dayOfMonth
    }
}

fun compare(date1: MyDate, date2: MyDate) = date1 < date2

1 Ответ

0 голосов
/ 02 марта 2019

Функция compare() там просто заполнитель показывает "как использовать compareTo()" без реального значения.Вы можете изменить его на другие имена, как вы хотите.

Как эти две функции связаны здесь?

Функция со случайным именем compare() вызывает MyDate '* compareTo() функцию с символом компаратора<.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...