더북(TheBook)

2.4.2 배열 사용하기

배열 타입은 문자열 타입과 꽤 비슷하다. 특히 size(문자열의 length에 해당)와 lastIndex 프로퍼티가 있다는 점과 인덱스 연산으로 원소에 접근할 수 있다는 점이 비슷하다. 잘못된 인덱스를 사용하면 런타임에 IndexOutOfBoundsException 예외가 발생한다.

val squares = arrayOf(1, 4, 9, 16)
squares.size       // 4
squares.lastIndex  // 3
squares[3]         // 16
squares[1]         // 4

하지만 문자열과 달리 배열에서는 원소를 변경할 수 있다.

squares[2] = 100 // squares: 1, 4, 100, 16
squares[3] += 9  // squares: 1, 4, 100, 25
squares[0]--     // squares: 0, 4, 100, 25

자바와 마찬가지로 배열 타입의 변수 자체에는 실제 데이터에 대한 참조를 저장한다. 이로 인해 배열 변수에 다른 배열을 대입하면 같은 데이터 집합을 함께 공유하게 된다.

val numbers = squares
numbers[0] = 1000     // 바뀐 데이터가 squares와 numbers에 공유됨
println(squares[0])   // prints 1000

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