Объясните концепцию выражения 'when' в языке программирования Kotlin.
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
when в Kotlin — это универсальный структурный оператор, который заменяет классический switch в других языках. Он может использоваться как выражение (возвращая значение) или как оператор.
Основные возможности:
-
Сравнение значений: Сопоставление с конкретными значениями.
fun describe(obj: Any): String = when (obj) { 1 -> "One" "Hello" -> "Greeting" is Long -> "Long" !is String -> "Not a string" else -> "Unknown" } -
Проверка на тип (
is/!is): Сопоставление с типами данных. -
Проверка на вхождение (
in/!in): Проверка вхождения в диапазон или коллекцию.fun checkRange(x: Int): String = when (x) { in 1..10 -> "Positive number in range" !in 10..20 -> "Not in the second range" else -> "None of the above" } -
Без аргумента: Используется как более гибкая замена цепочки
if-else if-else. Условия выполняются последовательно.fun checkBoolean(x: Boolean, y: Boolean): String = when { x && y -> "Both true" !x && !y -> "Both false" else -> "Mixed" } -
Возврат значения: Если
whenиспользуется как выражение, он должен быть исчерпывающим (покрывать все возможные случаи или иметь веткуelse).
when повышает читаемость и безопасность кода по сравнению с традиционным switch.