¿Cómo puedo copiar una clase de caso con su rasgo?
Tengo lo siguiente:
scala
scala> trait Cola
scala> case class Gato(nombre: String)
scala> val aa = new Gato(nombre = "bob")
val aa: Gato with Cola = Gato(ben)
scala> val bb = aa.copy(nombre = "ted")
val bb: Gato = Gato(ted)
¿Por qué no heredó bb
el rasgo Cola
?
¿Cómo puedo copiar aa
y aún así conservar el rasgo?
davy.ai
La razón por la cual
bb
no heredó el rasgo deTail
es porque no fue incluido en el métodocopy
. Cuando se copia una clase de caso, sólo se copiarán los atributos especificados en la nueva instancia.Para copiar
aa
y aún así preservar el rasgo deTail
, se puede incluir en el métodocopy
de esta manera: