Recherche…


Expressions de base si

Dans Scala (contrairement à Java et à la plupart des autres langages), if est une expression au lieu d'une déclaration . Indépendamment, la syntaxe est identique:

if(x < 1984) {
   println("Good times")
} else if(x == 1984) {
   println("The Orwellian Future begins")
} else {
   println("Poor guy...")
}

L'implication de if être une expression est que vous pouvez affecter le résultat de l'évaluation de l'expression à une variable:

val result = if(x > 0) "Greater than 0" else "Less than or equals 0"
\\ result: String = Greater than 0

Nous voyons ci-dessus que l'expression if est évaluée et que le result est défini sur cette valeur.

Le type de retour d'une if expression est le super - type de toutes les branches logiques. Cela signifie que pour cet exemple, le type de retour est une String . Étant donné que tous if les expressions renvoient une valeur ( par exemple , comme if la déclaration qui n'a pas d' else logique de branche), il est possible que le type de retour est Any :

val result = if(x > 0) "Greater than 0"
// result: Any = Greater than 0

Si aucune valeur ne peut être retournée (comme si seuls les effets secondaires comme println sont utilisés dans les branches logiques), le type de retour sera Unit :

val result = if(x > 0) println("Greater than 0")
// result: Unit = ()

if expressions dans Scala sont similaires à celles de l' opérateur ternaire dans les fonctions Java . En raison de cette similitude, il n’ya pas d’opérateur de ce type à Scala: il serait redondant.

Les accolades peuvent être omis dans une if expression si le contenu est une seule ligne.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow