0Pricing
Kotlin Academy · Lesson

Comparison Operators

compareTo and equals.

Comparing Custom Types

To use <, >, <=, >= on your type, define an operator fun compareTo that returns an Int.

data class Money(val cents: Int) {
    operator fun compareTo(o: Money) = cents - o.cents
}

fun main() {
    println(Money(500) > Money(200))
}

The compareTo Contract

compareTo returns a negative number if the receiver is smaller, zero if equal, and positive if larger.

data class Version(val n: Int) {
    operator fun compareTo(o: Version) = n - o.n
}

fun main() {
    println(Version(2).compareTo(Version(5)))
}

All lessons in this course

  1. Operator Functions
  2. Comparison Operators
  3. Index and Invoke
  4. Best Practices
← Back to Kotlin Academy