我正在完成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

最佳答案

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



随机命名的函数compare()用比较器符号MyDate 调用compareTo()<函数

关于kotlin - Kotlin Koans:运算符重载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54955015/

10-15 11:04