kotlin - Kotlin Koans:运算符重载
问题描述
我正在完成 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
解决方案
那里的compare()
功能只是一个占位符,显示“如何使用compareTo()
”,没有实际意义。您可以根据需要将其更改为其他名称。
这两个函数在这里有什么关系?
一个随机命名的函数compare()
调用带有比较器符号MyDate
的compareTo()
函数。<
推荐阅读
- spring-boot - springboot使用http respose header传输:编码,但是tcp发送两个数据包即使响应很小
- python - 用seaborn制作的解包情节
- c# - 整数范围
- c++ - 在用 C++ 编写 txt 文件时无法过滤掉字符串向量
- python - 将两个python脚本合二为一
- flutter - [Flutter]:在 SelectFormField 包中搜索不起作用
- c# - 没有这样的表错误或文件不是数据库
- java - Rabbit MQ + Spring Boot:重新发送损坏消息之间的延迟
- docker - 自动化 docker swarm 配置轮换
- html - 如何将值从 HTML 发送到另一个 HTML 文档并重定向到它?