[코틀린] DataClass

Destructuring declarations

이 data키워드는 소멸 선언 을 허용하는 함수를 제공합니다 . 즉, 모든 속성에 대해 함수를 생성하므로 다음과 같은 작업을 수행 할 수 있습니다.

val steveJobs= User("Steve Jobs", 56)

fun print() {
  val (name, age) = steveJobs
  println("$name, $age years of age") // prints "Steve Jobs, 56 years of age"

  steveJobs.component1() // name
  steveJobs.component2() // age
}

Copy function

이 data키워드는 클래스의 일부 속성 값을 변경하는 편리한 복사 방법을 제공합니다. 연령을 변경하는 사용자의 복사본을 만들고 싶다면 다음과 같이하십시오.

val steveJobs= User("Steve Jobs", 56)
val steveJobsToday= steveJobs.copy(age = 63)

Properties declared in the class body are ignored

컴파일러는 자동 생성 함수에 대해 기본 생성자 내부에서 정의 된 속성 만 사용합니다.

data class User(val name: String, val age: Int) {
  var address : String = ""
}

요구 사항 및 제한 사항