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