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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow