@lucastex posted sur l'opérateur Java Elvis et moi avons essayé quelque chose dans Scala pour obtenir le même effet.Scala: 2 Implicite convertions moyen d'invoquer
Je viens de tout convertir en un nouveau type structurel avec l'opérateur ?:
prenant un objet du même type que l'argument. Alors Dis:
implicit def toRockStar[B](v : B) = new {
def ?:(opt: => B) = if (v == null) opt else v}
val name: String = "Paulo" // example
Pourquoi name ?: "Lucas"
obtient "Lucas"
et name.?:{"Lucas"}
obtient Paulo
? Le nouveau type de construction est censée retourner la valeur initiale de quoi que ce soit si elle est non nul, c'est "Paulo"
dans le code ci-dessus.
Je suis un peu confus. Toute explication?
Oh Mon Dieu! Tu as raison! Page 223 dans O'Reilly Programming Scala. Merci! – paulosuzart