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
выражение , если содержание представляет собой одну строку.