PHpullh
학습 라이브러리/Kotlin/구조 분해 선언 (Destructuring)

KOTLIN · 기초 문법

구조 분해 선언 (Destructuring)

데이터 클래스나 componentN() 함수를 가진 객체를 여러 변수로 한 번에 분해할 수 있습니다.

기초 문법중급destructuringdata-classcomponentN

핵심 설명

데이터 클래스나 componentN() 함수를 가진 객체를 여러 변수로 한 번에 분해할 수 있습니다.

Kotlin code

data class Point(val x: Int, val y: Int)

fun getUser() = Triple("김철수", 25, "서울")

fun main() {
    // data class 분해
    val (x, y) = Point(10, 20)
    println("x=$x, y=$y")

    // Triple 분해
    val (name, age, city) = getUser()
    println("$name, $age, $city")

    // Map 순회 시 분해
    val scores = mapOf("국어" to 90, "수학" to 85)
    for ((subject, score) in scores) {
        println("$subject: $score")
    }

    // 람다 파라미터 분해
    scores.forEach { (k, v) -> println("$k=$v") }
}

학습 팁

사용하지 않는 변수는 _로 무시할 수 있습니다: val (_, age) = getUser()

주의할 점

구조 분해는 위치 기반입니다. 데이터 클래스의 프로퍼티 순서가 바뀌면 분해 결과도 달라지므로 주의하세요.

자주 묻는 질문

구조 분해 선언 (Destructuring)란 무엇인가요?

데이터 클래스나 componentN() 함수를 가진 객체를 여러 변수로 한 번에 분해할 수 있습니다.

구조 분해 선언 (Destructuring) 학습 시 주의할 점은 무엇인가요?

구조 분해는 위치 기반입니다. 데이터 클래스의 프로퍼티 순서가 바뀌면 분해 결과도 달라지므로 주의하세요.