Scala Language
Se espressioni
Ricerca…
Basic If Expressions
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.