scalabook
if/else
Однострочное if
выражение выглядит так:
val x = 1if x == 1 then println(x)// 1
Когда необходимо выполнить несколько строк кода после if
, используется синтаксис:
if x == 1 then println("x is 1, as you can see:") println(x)// x is 1, as you can see:// 1
if
/else
синтаксис выглядит так:
if x == 1 then println("x is 1, as you can see:") println(x)else println("x was not 1")// x is 1, as you can see:// 1
if
/else if
/else
выглядит так же, как и в других языках:
def detect(x: Int) = if x < 0 then println("negative") else if x == 0 then println("zero") else println("positive")detect(-1) // negative detect(0) // zero detect(1) // positive
При желании можно дополнительно включить оператор end if
в конце каждого выражения:
if x == 1 then println("x is 1, as you can see:") println(x)end if
if/else выражение всегда возвращает результат
Сравнения if/else
образуют выражения - это означает, что они возвращают значение, которое можно присвоить переменной.
Поэтому нет необходимости в специальном тернарном операторе.
Пример:
val minValue = if a < b then a else b
Можно использовать if/else
выражение в качестве тела метода:
def compare(a: Int, b: Int): Int = if a < b then -1 else if a == b then 0 else 1
Как будет видно дальше, все структуры управления Scala можно использовать в качестве выражений.
Программирование, ориентированное на выражения (expression-oriented programming или EOP) - стиль разработки, когда каждое написанное выражение возвращает значение.
И наоборот, строки кода, которые не возвращают значения, называются операторами или утверждениями и используются для получения побочных эффектов.
По мере погружения в Scala можно обнаружить, что пишется больше выражений и меньше утверждений.
Ссылки: