Kotlin - 구조 분해

2023. 5. 20. 18:54·📘 Backend/Kotlin

💡 구조 분해 (destructuring declaration)

변수 선언에서 괄호를 사용하는 것은 Kotlin의 구조 분해 선언(destructuring declaration)을 나타냅니다.
구조 분해 선언은 복합적인 데이터 구조에서 각 요소를 개별 변수로 분해할 수 있는 기능을 제공합니다.


예를 들어,
val (id, name, age, team) = queryFactory.selectFrom(m).fetchFirst()의 경우
queryFactory.selectFrom(m).fetchFirst()의 결과로 반환된 튜플이나 다른 구조화된 데이터 유형에서
각각의 값을 id, name, age, team 변수에 할당합니다.


즉, fetchFirst()가 반환하는 데이터는 예를 들어 다음과 같은 형태로 구성되어 있을 것입니다:

(123, "John", 25, "Team A")


구조 분해 선언을 사용하면 이 데이터를 각 변수에 자동으로 할당할 수 있습니다:

val (id, name, age, team) = (123, "John", 25, "Team A")

위의 코드와 동일한 방식으로 괄호를 사용하여 여러 변수에 값을 할당하는 것입니다.
이는 간결하고 가독성이 높은 코드를 작성하는 데 도움이 될 수 있습니다.

저작자표시 (새창열림)

'📘 Backend > Kotlin' 카테고리의 다른 글

이미지 압축 & 회전 & 변환  (0) 2023.05.23
Coroutine - Suspend Fun  (0) 2023.05.22
Kotest - Basic  (1) 2023.05.18
Coroutine - Basic  (1) 2023.04.30
(Buffered)InputStream & OutputStream Class  (0) 2023.04.30
'📘 Backend/Kotlin' 카테고리의 다른 글
  • 이미지 압축 & 회전 & 변환
  • Coroutine - Suspend Fun
  • Kotest - Basic
  • Coroutine - Basic
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      React #Markdown
      GStreamer #Pipeline
      Lock #Thread #Concurrency
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    Kotlin - 구조 분해
    상단으로

    티스토리툴바