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