컬렉션의 plus와 minus 연산자
컬렉션의 plus와 minus 연산자
컬렉션에 다른 요소를 더하거나 뺄 때, Kotlin에서는 plus(+)와 minus(-) 연산자가 준비돼 있어요. 두 연산자 모두 첫 번째 피연산자로 컬렉션을 받고, 두 번째 피연산자로는 요소 하나 또는 또 다른 컬렉션이 올 수 있어요. 반환 값은 새로운 읽기 전용 컬렉션이에요.
plus의 결과에는 원래 컬렉션의 요소 그리고 두 번째 피연산자의 요소가 모두 들어 있어요.minus의 결과에는 원래 컬렉션의 요소 중 두 번째 피연산자의 요소를 뺀 나머지가 들어 있어요. 두 번째 피연산자가 요소 하나라면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
}
출처: Kotlin 공식 문서
본문
맵에서의 plus와 minus 연산자에 대한 자세한 내용은 맵 연산에서 다뤄요. 컬렉션에는 복합 대입 연산자인 plusAssign(+=)과 minusAssign(-=)도 정의되어 있어요. 그런데 읽기 전용 컬렉션에서는 이 연산자들이 실제로는 plus나 minus를 실행하고 그 결과를 같은 변수에 다시 대입하려고 해요. 그래서 var로 선언된 읽기 전용 컬렉션에서만 쓸 수 있어요. 가변 컬렉션(val)에서는 컬렉션 자체를 수정해요. 자세한 내용은 컬렉션 쓰기 연산 문서를 참고해 주세요.