data class Point(val x: Int, val y: Int){
operator fun plus(other: Point): Point{
return Point(x + other.x, y + other.y)
}
}
| Expression | Function name |
|---|
| a * b | a.times(b) |
| a / b | a.div(b) |
| a % b | a.rem(b) |
| a + b | a.plus(b) |
| a - b | a.minus(b) |
| a..b | a.rangeTo(b) |
| +a | a.unaryPlus() |
| -a | a.unaryMinus() |
| !a | a.not() |
| ++a,a++ | a.inc() |
| –a,a– | a.dec() |
| a += b | a.plusAssign(b) |
| a -= b | a.minusAssign(b) |
| a == b | a?.equals(b) ?: ( b === null ) |
| a != b | !( a?.equals(b) ?: ( b === null )) |
| a > b | a.compareTo(b) > 0 |
| a >= b | a.compareTo(b) >= 0 |
| a shl b( << ) | a.shl(b) |
| a shr b( >> ) | a.shr(b) |
| a ushr b( >>> ) | a.ushr(b) |
| a and b( & ) | a.and(b) |
| a or b( | ) |
| a xor b( ^ ) | a.xor(b) |
| a.inv()( ~ ) | a.inv() |
| a in b | b.contains(a) |
| a !in b | !b.contains(a) |
| a[i] | a.get(i) |
| a[i] = b | a.set(i,b) |
| a[i, j] => 矩阵之类 | a.get(i,j) |
解构表达式
class Point(val x: Int, val y: Int){
operator fun component1() = x
operator fun component2() = y
}
p = Point(1,2)
val (a, b) = p