a = getA();
if (a == null) a = maisAllezDonneMoiUnA();
et
val a:Option[A] = uneFonctionQuiRenvoieUnAOuPas()
val s = a.getOrElse(valeurSiPasUnA)
( ou l'autre méthode )
Je ne cherche pas à te titiller hein, je veux vraiment comprendre n'ayant jamais fais de Scale/Haskell.
Dans ton exemple je ne sais pas de quel type est le contenu de a (Option est un type à part entière qui m'empêche de taper dans le null?), alors qu'en Java je sais qu'il est ou null, ou du type voulu.
Je n'arrive pas à voir l'avantage concrètement.
[^] # Re: .
Posté par meh . En réponse au journal Le point sur Java 7. Évalué à 1.
Je ne comprends pas l'avantage entre :
a = getA();
if (a == null) a = maisAllezDonneMoiUnA();
et
val a:Option[A] = uneFonctionQuiRenvoieUnAOuPas()
val s = a.getOrElse(valeurSiPasUnA)
( ou l'autre méthode )
Je ne cherche pas à te titiller hein, je veux vraiment comprendre n'ayant jamais fais de Scale/Haskell.
Dans ton exemple je ne sais pas de quel type est le contenu de a (Option est un type à part entière qui m'empêche de taper dans le null?), alors qu'en Java je sais qu'il est ou null, ou du type voulu.
Je n'arrive pas à voir l'avantage concrètement.
Merci d'avance si tu peux m'éclairer :)