Scala Language Basic If Expressions

Esempio

In Scala (a differenza di Java e della maggior parte delle altre lingue), if è un'espressione invece di un'istruzione . Indipendentemente da ciò, la sintassi è identica:

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

L'implicazione di if essere un'espressione è che è possibile assegnare il risultato della valutazione dell'espressione a una variabile:

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

Sopra vediamo che l'espressione if viene valutata e il result è impostato su quel valore risultante.

Il tipo restituito di un'espressione if è il supertipo di tutti i rami logici. Ciò significa che per questo esempio il tipo restituito è una String . Poiché non tutti if le espressioni restituiscono un valore (come ad esempio un if dichiarazione che non ha else di logica ramo), è possibile che il tipo di ritorno è Any :

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

Se non è possibile restituire alcun valore (ad esempio se vengono utilizzati solo effetti collaterali come println all'interno dei rami logici), il tipo di ritorno sarà Unit :

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

if espressioni in Scala sono simili a come funziona l' operatore ternario in Java . A causa di questa somiglianza, non esiste un operatore di questo tipo in Scala: sarebbe ridondante.

Graffe possono essere omessi in if espressione se il contenuto è una singola riga.