Pourquoi l'utilisation de foreach
, map
, flatMap
etc. est considérée comme meilleure que l'utilisation de get
pour les options Scala ? Si j'utilise isEmpty
je peux appeler get
toute sécurité.
Réponses
Trop de publicités?Une bonne raison d'utiliser foreach
est d'analyser quelque chose avec des options imbriquées. Si vous avez quelque chose comme
val nestedOption = Some(Some(Some(1)))
for {
opt1 <- nestedOption
opt2 <- opt1
opt3 <- opt2
} println(opt3)
La console imprime 1
. Si vous étendez cela à un cas où vous avez une classe qui stocke facultativement une référence à quelque chose, qui à son tour stocke une autre référence, les compréhensions vous permettent d'éviter une "pyramide" géante de vérification Aucun/Certain.
Il existe déjà d'excellentes réponses à la question réelle, mais pour plus de Option
-foo, vous devriez certainement consulter la feuille de triche Option de Tony Morris .