Scala Language
Если выражения
Поиск…
Основные выражения if
В Scala (в отличие от Java и большинства других языков) выражение if вместо выражения . Независимо от того, синтаксис идентичен:
if(x < 1984) {
println("Good times")
} else if(x == 1984) {
println("The Orwellian Future begins")
} else {
println("Poor guy...")
}
Импликация if являющегося выражением, заключается в том, что вы можете присвоить результат вычисления выражения переменной:
val result = if(x > 0) "Greater than 0" else "Less than or equals 0"
\\ result: String = Greater than 0
Выше мы видим, что выражение if оценивается, и result устанавливается на это результирующее значение.
Тип возвращаемого выражения if является супертипом всех ветвей логики. Это означает, что для этого примера возвращаемый тип является String . Поскольку не все , if выражения возвращают значение (например, if заявление , которое не имеет else филиальную логики), то возможно , что тип возвращаемого значения Any :
val result = if(x > 0) "Greater than 0"
// result: Any = Greater than 0
Если никакое значение не может быть возвращено (например, если в логических ветвях используются только побочные эффекты, такие как println ), тогда тип возврата будет Unit :
val result = if(x > 0) println("Greater than 0")
// result: Unit = ()
if выражения в Scala похожи на то, как работает тернарный оператор в Java . Из-за этого сходства в Scala такого оператора нет, он был бы лишним.
Фигурные скобки могут быть опущены в
ifвыражение , если содержание представляет собой одну строку.