7
วิธีที่สะอาดกว่าในการอัปเดตโครงสร้างที่ซ้อนกัน
สมมติว่าฉันมีสองสิ่งต่อไปนี้case class: case class Address(street: String, city: String, state: String, zipCode: Int) case class Person(firstName: String, lastName: String, address: Address) และตัวอย่างต่อไปนี้ของPersonคลาส: val raj = Person("Raj", "Shekhar", Address("M Gandhi Marg", "Mumbai", "Maharashtra", 411342)) ตอนนี้ถ้าผมต้องการที่จะปรับปรุงzipCodeของrajแล้วฉันจะต้องทำ: val updatedRaj = raj.copy(address = raj.address.copy(zipCode = raj.address.zipCode + 1)) ด้วยระดับที่มากขึ้นของการซ้อนสิ่งนี้จะทำให้น่าเกลียดยิ่งขึ้น มีวิธีที่สะอาดกว่า (เช่น Clojure's update-in) ในการอัปเดตโครงสร้างที่ซ้อนกันดังกล่าวหรือไม่?
124
scala
case-class
zipper