본문 바로가기
코틀린/코틀린 공식문서

[코틀린 공식문서] 배열 ; Arrays

by 측면삼각근 2023. 7. 27.
728x90
반응형

해당 블로깅은 코틀린 공식문서 Arrays를 번역하며 학습한 내용입니다.

학습중임에 따라 추가되고 의역된 부분이 있습니다.
혹시 잘못된 설명이 있다면 얼마든지 제보해주세요.

 

Arrays | Kotlin

 

kotlinlang.org


Arrays

코틀린에서 배열은 Array클래스로 표현된다.
이 클래스는 연산자 오버라이딩 규칙을 통해 [] 로 변환되는 get() 및 set() 함수같은 유용한 함수들과, size 프로퍼티를 갖고 있다.

class Array<T> private constructor() {
    val size: Int
    operator fun get(index: Int): T
    operator fun set(index: Int, value: T): Unit

    operator fun iterator(): Iterator<T>
    // ...
}

배열을 만들려면 arrayOf함수를 사용하여 배열을생성 한다.. arrayOf(1,2,3) -> [1,2,3]
또는 arrayOfNulls() 함수를 사용하여 null 요소로 채워진 지정된 크기의 배열을 만들 수 있다.

array size와 Return element를 넣어 사용하는 Array 생성자(Array constructor)를 사용할 수 도 있다.

// Creates an Array<String> with values ["0", "1", "4", "9", "16"]
val asc = Array(5) { i -> (i * i).toString() }
asc.forEach { println(it) }

 

코틀린 배열은 불변적이여서, Array<String>을 Array<Any>에 할당할 수 없다.
(하지만 Array<out Any>를 사용할 수 있음; Type projections 참조)

Primitive type arrays

코틀린에서는 박싱 오버헤드(Boxing overhead) 없이 기본 타입 배열을 나타내는 클래스도 있다. (ByteArray, ShortArray, Int Array등)
이 클래스들은 Array클래스와 상속관계가 없지만, 동일한 메서드와 속성 세트를 갖고있다.

각각 클래스는 해당 팩토리 함수까지 존재한다.

// Array of int of size 5 with values [0, 0, 0, 0, 0]
val arr = IntArray(5)

// Example of initializing the values in the array with a constant
// Array of int of size 5 with values [42, 42, 42, 42, 42]
val arr = IntArray(5) { 42 }

// Example of initializing the values in the array using a lambda
// Array of int of size 5 with values [0, 1, 2, 3, 4] (values initialized to their index value)
var arr = IntArray(5) { it * 1 }

 

반응형