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()의 파라미터 이름은 생성자 파라미터의 이름과 같다. 모든 인자에는 각 프로퍼티의 현재 값이 디폴트 인자로 지정되어 있다. 따라서 변경하고 싶은 인자만 (이름 붙은 인자로) 지정하면 된다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.