プラスとマイナス演算子
Kotlinでは、コレクションにplus
(+
) と minus
(-
)演算子が定義されています。
それらは最初のオペランドにはコレクションをとり、二番目のオペランドには要素か別のコレクションのどちらかを取ります。
返される値は新しく作られる読み取り専用のコレクションです:
plus
の結果は、元のコレクションに二番目のオペランドを加えたものminus
の結果は、元のコレクションから二つ目のオペランドを除いたもの。 もし2つ目のオペランドが要素の時は、minus
は最初の一致した要素を取り除く。二番目のオペランドがコレクションの場合は、すべての一致した要素を取り除きます。
fun main() {
//sampleStart
val numbers = listOf("one", "two", "three", "four")
val plusList = numbers + "five"
val minusList = numbers - listOf("three", "four")
println(plusList)
println(minusList)
//sampleEnd
}
マップのplus
とminus
の詳細については、マップ特有のオペレーションを参照ください。
拡張代入演算子 plusAssign
(+=
) と minusAssign
(-=
) もコレクションに実装されています。
しかし、読み取り専用コレクションに対してはこれらは実際にはplus
やminus
演算子を使って、結果を同じ変数に再代入しようとします。
つまり、それらの演算子はvar
の読み取り専用コレクションにしか使えません。
ミュータブルなコレクションの場合、もしval
だったらばコレクションを直接変更します。
より詳しくはコレクションの書き込みオペレーションを参照ください。