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
ifwyrażenia jeśli treść jest pojedyncza linia.