Option Option
1. Définition
Comme son nom l’indique, la classe typée Option est utilisée pour des valeurs optionnelles. Un objet de ce type peut avoir deux valeurs possibles :
-
Some(x), où x est la valeur existante.
-
None, dans le cas où la valeur est manquante.
Ce type est souvent utilisé dans les opérations classiques des collections Scala, comme par exemple pour accéder à un élément d’une Map avec la méthode get.
Prenons comme exemple une Map[String, Int] associant un nom d’animal à un nombre.
val animauxMap = Map("chat" -> 4)
// animauxMap: Map[String, Int] = Map("chat" -> 4)
Si on appelle la méthode get sur cette variable avec l’argument "chat”, on obtient une Option[Int] non vide.
animauxMap.get("chat")
// res59: Option[Int] = Some(4)
Si on appelle la méthode get sur cette variable avec l’argument "chien”, on obtient une Option[Int] vide, autrement dit, None.
animauxMap.get("chien")
// res60: Option[Int] = None
Pour créer une Option à partir d’un objet non nul, il suffit d’utiliser la case class Some qui étend la classe Option suivie de la valeur non nulle.
val optionDefinie = Some(12)
// optionDefinie: Some[Int] = Some(12)
Pour savoir si une Option est définie ou vide, on utilise les méthodes isDefined et isEmpty.
optionDefinie.isDefined
// res61: Boolean = true
...