Javaで作られた業務アプリ内で演算するとき、大きい桁の数値や、演算したときの正確性などからBigDecimalを使っていたかと思います。しかし、BigDecimalでの演算はすべてメソッドで行うので直感的でなくとてもわかりにくかったです。
例えば、(1 + 10) / 2 の場合、
BigDecimal bdOne = BigDecimal.ONE;
BigDecimal bdTen = BigDecimal.TEN;
bdOne.add(bdTen).divide(BigDecimal.valueOf(2L), RoundingMode.HALF_EVEN)のように書きました。
これにたいしてKotlinの場合
val bdOne = BigDecimal.ONE
val bdTen = BigDecimal.TEN
(bdOne + bdTen) / 2.toBigDecimal()と非常に直感的でわかりやすいです。
Kotlin において演算子は, 演算子オーバーロードという仕組みによって決められたメソッドを呼び出すことになります。
その他の主な演算子の対応は以下のような感じです。
算術演算子
| 演算子 | 命名 |
|---|---|
| + | plus |
| – | minus |
| * | times |
| / | div |
| % | rem |
| ++ | inc |
| — | dec |
代入演算子
| 演算子 | 命名 |
|---|---|
| += | plusAssign |
| -= | minusAssign |
| *= | timesAssign |
| /= | divAssign |
| %= | remAssign |
比較演算子
| 演算子 | 命名 |
|---|---|
| == | equals |
| >, < | compareTo |
| in | contains |
| .. | rangeTo |