プラスとマイナス演算子
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だったらばコレクションを直接変更します。
より詳しくはコレクションの書き込みオペレーションを参照ください。