Disons que j'ai une classe de cas qui représente les personnages, les gens sur les différents réseaux sociaux. Les Instances de cette classe sont entièrement immuable, et sont détenus dans immuable collections, pour être éventuellement modifiée par un Akka acteur.
Maintenant, j'ai une classe de cas avec de nombreux champs, et je reçois un message qui dit que je doit mettre à jour l'un des champs, quelque chose comme ceci:
case class Persona(serviceName : String,
serviceId : String,
sentMessages : Set[String])
// Somewhere deep in an actor
val newPersona = Persona(existingPersona.serviceName,
existingPersona.serviceId,
existingPersona.sentMessages + newMessage)
Avis-je spécifier tous les domaines, même si un seul des changements. Est-il un moyen de cloner existingPersona et remplacer un champ, sans spécifier tous les champs qui ne changent pas? Puis-je écrire que comme un trait et de l'utiliser pour toutes mes classes de cas?
Si Persona est une Carte-comme exemple, il serait facile à faire.