Data Class

LEEHEES·2022년 7월 16일
0

Kotlin

목록 보기
10/13
post-thumbnail

데이터를 다루는데 최적화된 Class

5가지 기능을 내부적으로 자동으로 생성

1. equals() - 내용의 동일성 판단

2. hashcode() - 객체의 내용에서 고유한 코드 생성

3. toString() - 포함된 속성을 보기 쉽게 나타냄

4. copy() - 객체를 복사하여 똑같이 내용의 새 객체를 만듦

※ 파라미터 없이 생성할 수도 있고,
  파라미터를 전달하여 일부 속성 교체 가능

5. componentX() - 속성을 순서대로 반환

※ 배열이나 리스트 등에 Data Class 객체가 담겨 있을 때
  이 내용을 자동으로 꺼내 쓸 수 있는 기능을 지원하기 위한 함수

풀코드

fun main() {

    equals_hashcode_tostring()

    println()
    println("====================")
    println()

    _componextX()

}

fun equals_hashcode_tostring() {

    val a = General("name1", 1)

    println(a == General("name1", 1))
    println(a.hashCode())
    println(a)

    println()

    val b = Data("name2", 2)

    println(b == Data("name2", 2))
    println(b.hashCode())
    println(b)

    println()

    println(b.copy())
    println(b.copy("name3"))
    println(b.copy(id = 3))

}

fun _componextX() {

    val llist = listOf(
            Data("name11", 1),
            Data("name12", 2),
            Data("name13", 3)
    )

    for ((a, b) in llist) {
        println("$a : $b")
    }

}

class General(val name: String, val id: Int)

data class Data(val name: String, val id: Int)
profile
iOS 개발 공부

0개의 댓글