Case object Case object

De la même façon qu’une case class est une classe améliorée, un case object est un objet amélioré. Les méthodes toString, hashCode et equals sont définies de la même façon, permettant de comparer et lire les case objects plus aisément.

Prenons comme exemple, une énumération de couleur. On définit le trait Couleur qui servira dans la suite du chapitre.

On définit également le trait CouleurBasique qui étend le trait Couleur en ajoutant le préfixe sealed au trait. Cela permet de décrire de façon exhaustive tous les éléments qui étendent le trait et qui doivent tous être écrits dans le même fichier. C’est ainsi qu’on définit une énumération en Scala. 

sealed trait Couleur 
// defined trait Couleur 
 
sealed trait CouleurBasique extends Couleur 
// defined trait CouleurBasique 

Ensuite, on définit cinq case objets pour définir les couleurs Bleu, Rouge, Jaune, Blanc et Noir.

case object Bleu extends CouleurBasique 
// defined object Bleu 
 
case object Rouge extends CouleurBasique 
// defined object Rouge 
 
case object Jaune extends CouleurBasique 
// defined object Jaune 
 
case object Blanc extends CouleurBasique 
// defined object Blanc 
 
case object Noir extends CouleurBasique 
// defined object Noir 

Comme décrit plus tôt...

couv_EPSCALA.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Case class
Suivant
Pattern matching