다른 소셜 네트워크에있는 페르소나를 대표하는 사례 클래스가 있다고 가정 해 보겠습니다. 해당 클래스의 인스턴스는 완전히 불변이며 불변 컬렉션에 보관되어 결국 Akka 액터에 의해 수정됩니다.
이제 필드가 많은 케이스 클래스가 있으며 필드 중 하나를 업데이트해야한다는 메시지가 표시됩니다.
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)
하나만 변경하더라도 모든 필드를 지정해야합니다. 변경되지 않는 모든 필드를 지정하지 않고 기존 개인을 복제하고 하나의 필드 만 바꾸는 방법이 있습니까? 특성으로 작성하여 모든 사례 수업에 사용할 수 있습니까?
페르소나가 맵과 같은 인스턴스라면 쉽게 할 수 있습니다.