Поиск…


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



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow