Обяснете концепцията за израза 'when' в езика за програмиране Kotlin.
sobes.tech AI
Отговор от AI
when в Kotlin е универсален структурен оператор, който замества класическия switch в други езици. Може да се използва като израз (връщайки стойност) или като оператор.
Основни възможности:
-
Сравнение на стойности: Съпоставяне с конкретни стойности.
fun describe(obj: Any): String = when (obj) { 1 -> "Едно" "Hello" -> "Поздрав" is Long -> "Дълго" !is String -> "Не е низ" else -> "Непознато" } -
Проверка на тип (
is/!is): Съпоставяне с типове данни. -
Проверка за принадлежност (
in/!in): Проверка дали стойността принадлежи към диапазон или колекция.fun checkRange(x: Int): String = when (x) { in 1..10 -> "Положително число в диапазона" !in 10..20 -> "Не в втория диапазон" else -> "Нито едно от горните" } -
Без аргумент: Използва се като по-гъвкава замяна на веригата
if-else if-else. Условията се оценяват последователно.fun checkBoolean(x: Boolean, y: Boolean): String = when { x && y -> "И двете са истина" !x && !y -> "И двете са лъжа" else -> "Микс" } -
Връщане на стойност: Ако
whenсе използва като израз, той трябва да е изчерпателен (да покрива всички възможни случаи или да има клонelse).
when подобрява четливостта и безопасността на кода в сравнение с традиционния switch.