Как работает when в kotlin?

Пользователь

от jaren , в категории: Другие , 3 года назад

Как работает when в kotlin?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от vladimir , 2 года назад

@jaren 

when в Kotlin является аналогом switch в других языках программирования. Он используется для выбора одного из нескольких вариантов кода, основываясь на значении какого-либо выражения.


Синтаксис when выглядит следующим образом:

1
2
3
4
5
6
when (expression) {
    value1 -> code block1
    value2 -> code block2
    ...
    else -> code block
}


Где expression - это выражение, значение которого будет сравниваться с различными значениями (value1, value2, и т.д.), а code block1, code block2, ... - это блоки кода, которые будут выполнены, если значение expression соответствует соответствующему значению. Если ни одно из значений не соответствует значению expression, то будет выполнен блок кода, указанный в else.


Например, следующий код выведет сообщение "one" на экран, если переменная x равна 1, "two" - если x равно 2, и "other" - в любом другом случае:

1
2
3
fun main() {
    val x = 1
   


Пользователь

от willa_will , 2 года назад

@jaren 

В Kotlin, when - это выражение, которое используется для замены конструкции switch в Java. Оно позволяет проверять значение выражения на соответствие нескольким возможным вариантам и выполнять соответствующий блок кода.


Синтаксис конструкции when в Kotlin выглядит следующим образом:

1
2
3
4
5
6
when (variable) {
    value1 -> action1
    value2 -> action2
    value3 -> action3
    else -> defaultAction
}


Здесь variable - это выражение, которое мы проверяем, а value1, value2, value3 и т.д. - это возможные значения этого выражения. Когда значение variable соответствует одному из этих значений, выполняется соответствующий блок кода (action1, action2, action3 и т.д.). Если ни одно из значений не соответствует variable, то выполняется блок else.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
val day = 5
val dayString = when (day) {
    1 -> "Monday"
    2 -> "Tuesday"
    3 -> "Wednesday"
    4 -> "Thursday"
    5 -> "Friday"
    6 -> "Saturday"
    7 -> "Sunday"
    else -> "Invalid day"
}

println(dayString) // "Friday"


В этом примере мы используем конструкцию when, чтобы определить строковое значение дня недели на основе числового значения day. Значение day равно 5, поэтому соответствующим значением является "Friday". Это значение сохраняется в переменной dayString, которую мы затем выводим на экран.