Scala Language
Jeśli wyrażenia
Szukaj…
Podstawowe wyrażenia If
W Scala (w przeciwieństwie do Javy i większości innych języków), if
jest wyrazem zamiast oświadczeniu. Niezależnie od tego składnia jest identyczna:
if(x < 1984) {
println("Good times")
} else if(x == 1984) {
println("The Orwellian Future begins")
} else {
println("Poor guy...")
}
Konsekwencją if
jest wyrazem jest to, że można przypisać wynik evalation wyrażenia do zmiennej:
val result = if(x > 0) "Greater than 0" else "Less than or equals 0"
\\ result: String = Greater than 0
Powyżej widzimy, że wyrażenie if
jest oceniane, a result
jest ustawiony na wynikową wartość.
Zwracany typ wyrażenia if
jest nadtypem wszystkich gałęzi logicznych. Oznacza to, że w tym przykładzie typem zwracanym jest String
. Ponieważ nie wszystkie wyrażenia if
zwracają wartość (taką jak instrukcja if
, która nie ma else
logiki rozgałęzienia), możliwe jest, że typem zwracanym jest Any
:
val result = if(x > 0) "Greater than 0"
// result: Any = Greater than 0
Jeśli nie można zwrócić żadnej wartości (na przykład, jeśli wewnątrz gałęzi logicznych stosowane są tylko efekty uboczne, takie jak println
), wówczas zwracanym typem będzie Unit
:
val result = if(x > 0) println("Greater than 0")
// result: Unit = ()
if
wyrażenia w Scali są podobne do działania potrójnego operatora w Javie . Z powodu tego podobieństwa w Scali nie ma takiego operatora: byłby zbędny.
Nawiasy klamrowe mogą zostać pominięte w
if
wyrażenia jeśli treść jest pojedyncza linia.