Kotlin Koans:运算符重载

时间:2019-03-02 03:42:32

标签: kotlin

我正在完成Kotlin Koans的Comparison练习,并且想知道为什么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 :(得分:1)

compare()函数中仅一个占位符显示“如何使用compareTo()”,而没有实际含义。您可以根据需要将其更改为其他名称。

  

这两个功能在这里如何关联?

随机命名的函数compare()使用比较器符号MyDate 调用compareTo()的{​​{1}}函数