简介
运算符重载是Kotlin提供的一个很实用的语法糖,运算符重载使用operator关键字,只要在指定函数的前面加上operator关键字,就可以实现运算符重载的功能,运算符和函数名对应关系如下:
表达式 | 实际调用函数 |
---|---|
+a | a.unaryPlus() |
-a | a.unaryMinus() |
!a | a.not() |
a++ | a.inc() |
a– | a.dec() |
a + b | a.plus(b) |
a - b | a.minus(b) |
a * b | a.times(b) |
a / b | a.div(b) |
a % b | a.rem(b) |
a += b | a.plusAssign(b) |
a -= b | a.minusAssign(b) |
a *= b | a.timesAssign(b) |
a /= b | a.divAssign(b) |
a %= b | a.remAssign(b) |
a…b | a.rangeTo(b) |
a in b a !in b | b.contains(a) |
a == b a != b | a.equals(b) |
a > b a < b a >= b a <= b | a.compareTo(b) |
a[…] | a.get(…) |
a[…] = b | a.set(…, b) |
实例
class Person(var money: Int){
operator fun compareTo(person: Person) = this.money.compareTo(person.money)
}
fun main(args: Array<String>) {
val dean = Person(40)
val mh = Person(50)
println(dean >= mh)
}