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
- Operator Functions
- Comparison Operators
- Index and Invoke
- Best Practices