728x90
반응형
해당 블로깅은 코틀린 공식문서 Arrays를 번역하며 학습한 내용입니다.
학습중임에 따라 추가되고 의역된 부분이 있습니다.
혹시 잘못된 설명이 있다면 얼마든지 제보해주세요.
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 }
반응형
'코틀린 > 코틀린 공식문서' 카테고리의 다른 글
[코틀린 공식문서] Classes; 클래스 (0) | 2023.08.10 |
---|---|
[코틀린 공식문서] High-order functions and lambdas; 고차함수 및 람다 (0) | 2023.07.31 |
[코틀린 공식 문서] Functions; 함수 (1) | 2023.07.27 |
[코틀린 공식문서] Extensions; 확장 (0) | 2023.07.27 |
[코틀린 공식문서] KDoc 문서화 코드 (0) | 2023.07.21 |