В Kotlin , когда заменить switch-operator от java, но основное отличие состоит в том, что , когда является выражением , поэтому может вернуть результат.
Чтобы лучше понять, как работает выражение «когда» в Kotlin, вы можете взглянуть на лямбды. Оператор when просто возвращает результат своей 'лямбды' после каждого случая.
Даже если вы напишите
when(a) {
1 -> println("one")
else -> println("something else")
}
Эта запись возвращает результат функции println (...), которая возвращает Unit. Поэтому это не лучший способ написать код, когда вы дублируете это «return».
val result = when(a) {
1 -> println("one")
else -> println("something else")
}
// and now result equals to Unit-object
Та же история с if-else, это также выражение .