すっきり表記したいから演算子をオーバーロードするのですが、優先順位を意識して設計しないと括弧だらけになってしまいます。
| Usage | Implementation |
|---|---|
| x() | x.call() |
| x[y] | x.getAt(y) |
| x++ | x.next() |
| x-- | x.previous() |
| ~x | x.bitwiseNegate() |
| 公式ドキュメントにはbitwiseNegateが他と同レベルと書かれているのですが、実際に~x++を実行するとnextの後でした。 |
| Usage | Implementation |
|---|---|
| x**y | x.power(y) |
| Usage | Implementation |
|---|---|
| +x | x.positive() |
| -x | x.negative() |
| Usage | Implementation |
|---|---|
| x*y | x.multiply(y) |
| x/y | x.div(y) |
| x%y | x.mod(y) |
| Usage | Implementation |
|---|---|
| x+y | x.plus(y) |
| x-y | x.minus(y) |
| Usage | Implementation |
|---|---|
| x<<y | x.leftShift(y) |
| x>>y | x.rightShift(y) |
| x>>>y | x.rightShiftUnsigned(y) |
| Usage | Implementation |
|---|---|
| x in y | y.isCase(x) |
| x as y | x.asType(y) |
| Usage | Implementation |
|---|---|
| x&y | x.and(y) |
| Usage | Implementation |
|---|---|
| x^y | x.xor(y) |
| Usage | Implementation |
|---|---|
| x|y | x.or(y) |
| Usage | Implementation |
|---|---|
| x[y] = z | x.putAt(y, z) |