DataClasses/CopyDataClass.kt
package dataclasses
import atomictest.eq
data class DetailedContact(
val name: String,
val surname: String,
val number: String,
val address: String
)
fun main() {
val contact = DetailedContact(
"Miffy",
"Miller",
"1-234-567890",
"1600 Amphitheatre Parkway")
val newContact = contact.copy(
number = "098-765-4321",
address = "Brandschenkestrasse 110")
newContact eq DetailedContact(
"Miffy",
"Miller",
"098-765-4321",
"Brandschenkestrasse 110")
}
copy()의 파라미터 이름은 생성자 파라미터의 이름과 같다. 모든 인자에는 각 프로퍼티의 현재 값이 디폴트 인자로 지정되어 있다. 따라서 변경하고 싶은 인자만 (이름 붙은 인자로) 지정하면 된다.