Skip to content

배토의 개발일지

나를위한 단편적 기억들의 기록

Menu
  • 안드로이드
  • 코틀린
  • Godot
  • 블렌더
  • git
  • 게임제작일지
  • 기타
Menu

Destructuring Declarations in Kotlin

Posted on 2020년 3월 6일2020년 3월 7일 by batmask

코틀린을 보다보면, 다음과같이 파이썬에서나 볼듯한 기이한 표현을 마주하는 경우가 있다.

val (name, age) = person

일반적인 표현은 아닌데, 이처럼 한큐에 여러 변수들에 값을 저장하는게 가능하다. 이를 Desturturing Declarations라고 부른다. 위 코드는 컴파일 타임에 다음과 같이 변형된다.

val name = person.component1()
val age = person.component2()

보면 알겠지만, 내가 만드는 클래스에 component1(), component2()를 정의 하면 역시 이처럼 사용가능하다. data class에는 이미 구현되어 있기 때문에, 예외적인 경우가 아니라면 data class를 쓰는게 제일 쉽다. 예를들어 함수의 리턴값을 받는 경우, 리턴값을 data class로 해주면 된다.

data class Result(val result: Int, val status: Status)
fun function(...): Result {
    // computations
    
    return Result(result, status)
}

// Now, to use this function:
val (result, status) = function(...)

Map에서도 편리하게 사용가능한데, map iterator에 위 내용이 구현되어 있으므로 다음과 같이 for문이나 lambda표현에 쓸 수 있다.

for ((key, value) in map) {
   // do something with the key and the value
}
...
map.mapValues { (key, value) -> "$value!" }

위 내용은 코틀린 공식문서( https://kotlinlang.org/docs/reference/multi-declarations.html )에서 가져왔다.

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • Blender : snap을 써서 다른 vertex에 정렬하기
  • KTor Client 기본 사용 정리
  • 게임 만들거다.
  • Using Koin with Android Compose

보관함

2020 3월
일 월 화 수 목 금 토
1234567
891011121314
15161718192021
22232425262728
293031  
« 8월   4월 »

메타

  • 로그인
  • 엔트리 피드
  • 댓글 피드
  • WordPress.org
©2025 배토의 개발일지 | Built using WordPress and Responsive Blogily theme by Superb