PHpullh
학습 라이브러리/Kotlin/Destructuring & 구조 분해

KOTLIN · 기초 문법

Destructuring & 구조 분해

컴포넌트 함수를 통해 객체를 여러 변수로 한 번에 분해합니다.

기초 문법중급destructuringcomponentNPairdata-class

핵심 설명

컴포넌트 함수를 통해 객체를 여러 변수로 한 번에 분해합니다.

Kotlin code

// Pair, Triple
val pair = Pair("Kotlin", 2024)
val (lang, year) = pair
println("$lang $year")

// data class는 자동으로 componentN() 생성
data class Point(val x: Int, val y: Int)
val (x, y) = Point(10, 20)
println("x=$x, y=$y")

// 특정 항목 무시: _
data class User(val id: Int, val name: String, val email: String)
val (_, name, _) = User(1, "Alice", "a@test.com")
println(name)

// Map 순회에서 destructuring
val map = mapOf("a" to 1, "b" to 2)
for ((key, value) in map) {
    println("$key → $value")
}

// withIndex destructuring
listOf("x", "y", "z").forEachIndexed { idx, item ->
    println("$idx: $item")
}

학습 팁

data class의 구조 분해는 주 생성자 선언 순서에 의존합니다. 나중에 프로퍼티 순서를 바꾸면 구조 분해 코드가 조용히 잘못됩니다.

주의할 점

data class 프로퍼티 순서를 변경하면 구조 분해 변수의 의미가 바뀝니다. 팀 코드에서는 Named arguments를 더 안전하게 사용하세요.

자주 묻는 질문

Destructuring & 구조 분해란 무엇인가요?

컴포넌트 함수를 통해 객체를 여러 변수로 한 번에 분해합니다.

Destructuring & 구조 분해 학습 시 주의할 점은 무엇인가요?

data class 프로퍼티 순서를 변경하면 구조 분해 변수의 의미가 바뀝니다. 팀 코드에서는 Named arguments를 더 안전하게 사용하세요.