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