Cleaner Weg, um verschachtelte Strukturen zu aktualisieren
Sag ich habe folgende zweicase class
es:
case class Address(street: String, city: String, state: String, zipCode: Int)
case class Person(firstName: String, lastName: String, address: Address)
und die folgende Instanz vonPerson
Klasse:
val raj = Person("Raj", "Shekhar", Address("M Gandhi Marg",
"Mumbai",
"Maharashtra",
411342))
Nun wenn ich updaten möchtezipCode
vonraj
dann muss ich machen:
val updatedRaj = raj.copy(address = raj.address.copy(zipCode = raj.address.zipCode + 1))
Mit mehr Verschachtelungsebenen wird dies noch hässlicher. Gibt es einen saubereren Weg (so etwas wie Clojure'supdate-in
) um solche verschachtelten Strukturen zu aktualisieren?