더북(TheBook)

중괄호({}) 안에 들어있는 언어 요소를 람다(lambda)라고 부른다. 람다는 인덱스를 기반으로 값을 계산하는 식을 정의한다. 이때 인덱스를 표현하는 변수로 자동으로 선언되는 it을 사용한다. 배열 인덱스는 0부터 (배열 크기 - 1)이기 때문에 이 배열에는 1, 4, 9 등의 값이 들어간다. 지금은 이런 구문을 있는 그대로 받아들이고, 5장 고급 함수와 함수형 프로그래밍 활용하기에서 이에 대해 자세히 알아보자.

Array<Int>를 사용하는 배열은 제대로 작동하지만 모든 수를 박싱하기 때문에 그다지 실용적이지 못한 해법이다. 이런 이유로 코틀린은 더 효율적인 ByteArray, ShortArray, IntArray, LongArray, FloatArray, DoubleArray, CharArray, BooleanArray라는 특화된 배열 타입을 제공한다. JVM에서 이런 배열 타입들은 int[], boolean[] 등의 원시 타입 배열로 표현된다. 이런 특화된 배열에도 arrayOf()Array()에 해당하는 함수가 함께 따라온다.

val operations = charArrayOf('+', '-', '*', '/', '%')
val squares = IntArray(10) { (it + 1)*(it + 1) }

자바 vs. 코틀린 자바와 달리 코틀린에는 new 연산자가 없기 때문에 배열 인스턴스 생성이 일반 함수 호출처럼 보인다. 코틀린에서는 배열 원소를 명시적으로 초기화해야 한다는 점에도 유의하라.

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