Dev

Data Classes Reference 읽기

Joo 2019. 10. 18. 14:32

(https://kotlinlang.org/docs/reference/data-classes.html 읽으면서 정리)

Data를 보관하기 위해서 class를 만든다. 이 class의 함수는 종종 데이터로부터 기계적으로 파생된다. 코틀린에서는 이를 data class라고 하고 data라는 마크를 붙인다.

data class User(
  val name: String,
  val age: Int
)

컴파일러에서 자동으로 다음과 같은 멤버를 추가한다.

  • equals(), hashCode()
  • toString() - "User(name=John, age=42)"
  • componentN() 함수 (프로퍼티매핑)
  • copy()

생성된 코드의 일관성과 의미있는 동작을 위해 다음과 같은 조건을 충족해야 한다.

  • primary constructor는 하나 이상의 파라미터가 있어야 한다.
  • 모든 primary constructor 파라미터는 val, var로 마트해야 한다.
  • data class는 abstract, open, sealed, inner가 될 수 없다.
data class User(val name: String = "", val age: Int = 0)
data class Person(val name: String) {
  var age: Int = 0
}

문서가 길어서 정리할 게 많을 줄 알았는데 그닥 없다. 끝.

반응형