Kotlin Koans 13 Comparison

目次

Comparison (Playground)

Description

Read about operator overloading to learn how different conventions for operations like ==, <, + work in Kotlin. Add the function compareTo to the class MyDate to make it comparable. After that the code below date1 < date2 will start to compile.

In Kotlin when you override a member, the modifier override is mandatory.

演算子のオーバーロード を読み、==<+ などの演算がKotlinでどのように機能するかを確認してください。 MyDateクラスに compareTo 関数を追加し、MyDateクラスの比較ができるように実装してください。 以下のコード date1 < date2 がコンパイルできるようになります。

Kotlinで演算子をオーバーライドする際は、 override 修飾子が必須となります。

Code

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

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

Memo

← Posts