목록으로
Kotlin

Destructuring & Component함수

Dev Park
5/15/2024
37 views

서론

데이터 클래스의 특성 중 하나인 convention 원리와 관련된 특성인 구조 분해 선언에 대해 알아보자.

구조 분해

구조 분해를 사용하면 객체가 가지고 있는 여러 값을 분해해서 여러 변수를 한꺼번에 초기화 할 수 있다.

Kotlin
1data class Car( 2 private val model : String, 3 private val year : Int 4) 5-- 6val car = Car("그랜저",11) 7 8val (model, year) = car 9 10println(model) 11>> 그랜저 12println(year) 13>> 11

위와 같이 여러 변수를 괄호로 묶어서 변수를 선언하여 객체의 값을 가져오는 것이 구조분해라고 한다.
이 구조 분해 선언 내부에서는 각 변수를 초기화하기 위해 componentN이라는 함수를 호출하게 되며, 여기서 N은 구조 분해 선언에 있는 변수 위치에 따라 붙는 번호다.

Kotlin
1val (a,b) = data 2-- 3val a = data.component1() 4val b = data.component2()

위와 같은 과정으로 component 함수가 작동한다.

이러한 구조 분해 선언은 함수의 리턴 값이 여러개일때 유용하다.
그렇다면 사용하지 않는 값을 처리할때는 어떻게 해야할까?

Kotlin
1data class Car( 2 private val model : String, 3 private val cc : Int, 4 private val year : Int 5) 6-- 7val car = Car("그랜저", 3000, 11) 8val (model, _, year) = car

위와 같이 사용하지 않는 값에 대해서는 _(언더바) 로 처리할 수 있다.