Volver a la página principal
martes 15 octubre 2024
3

Cómo usar sealed trait en Scala

En Scala, un sealed trait es una característica (trait) que restringe la herencia, permitiendo que solo las clases y objetos definidos en el mismo archivo puedan extenderlo. Esto es útil para crear tipos algebraicos o garantizar un control exhaustivo sobre las subclases en un patrón de diseño.

¿Qué es un sealed trait en Scala?

El modificador sealed en Scala indica que un trait o clase solo puede ser extendido o implementado dentro del mismo archivo fuente. Esto significa que cualquier intento de extender el sealed trait desde otro archivo generará un error. Esta característica es fundamental para patrones como los tipos algebraicos (sum types), ya que el compilador puede verificar que se hayan manejado todos los casos posibles en un match.

El uso de sealed trait es especialmente útil en situaciones donde se necesita un exhaustivo control sobre las variantes de un tipo, como en el procesamiento de estructuras jerárquicas o en el uso de patrones de coincidencia (pattern matching).

Ejemplo de uso de sealed trait en Scala

sealed trait Animal

case class Dog(name: String) extends Animal
case class Cat(name: String) extends Animal

def animalSound(animal: Animal): String = animal match {
  case Dog(name) => s"$name says Woof"
  case Cat(name) => s"$name says Meow"
}

En este ejemplo, Animal es un sealed trait y las clases Dog y Cat lo extienden. Esto asegura que solo esas dos clases puedan ser instancias de Animal, y el compilador verificará que el match cubre todos los casos posibles.

Referencias

Para más información, consulta la documentación oficial de Scala.

Etiquetas:
scala
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer