더북(TheBook)

사실 이는 9장 제네릭스에서 다룰 강력한 변성(variance)이라는 개념을 구체적으로 적용한 것일 뿐이다.

배열을 생성하고 나면 그 길이를 바꿀 수 없지만, + 연산을 사용해 원소를 추가한 새로운 배열을 만들 수는 있다.

val b = intArrayOf(1, 2, 3) + 4                  // 원소를 하나만 추가: 1, 2, 3, 4
val c = intArrayOf(1, 2, 3) + intArrayOf(5, 6)   // 다른 배열을 추가: 1, 2, 3, 5, 6

문자열과 달리 배열에 대한 ==!= 연산자는 원소 자체를 비교하지 않고 참조를 비교한다.

intArrayOf(1, 2, 3) == intArrayOf(1, 2, 3) // false

배열 내용을 비교하고 싶으면 contentEquals() 함수를 사용하라.

intArrayOf(1, 2, 3).contentEquals(intArrayOf(1, 2, 3)) // true

IDE 팁 ≡

인텔리J는 ==!=를 사용해 배열을 비교하는 경우 contentEquals() 호출로 바꾸라는 경고를 표시해준다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.