Типы в when в Kotlin
В when можно выбрать ветку по типу значения.
Для этого в условии пишут is
и имя типа.
Примеры ниже лежат в переменной типа Any:
туда можно положить строку, число или логическое значение.
В переменной лежит строка.
На экран попадет "text value":
val value: Any = "hello"
when (value) {
is String -> println("text value")
is Int -> println("number value")
is Boolean -> println("flag value")
else -> println("other type")
}
В переменной лежит число.
На экран попадет "number value":
val value: Any = 42
when (value) {
is String -> println("text value")
is Int -> println("number value")
is Boolean -> println("flag value")
else -> println("other type")
}
После проверки is String значение
считается строкой. Можно взять длину:
val value: Any = "kotlin"
when (value) {
is String -> println(value.length)
is Int -> println(value)
is Boolean -> println(value)
else -> println(0)
}
Дана переменная:
val item: Any = true
Для строки выведите "line",
для числа - "count",
для логического значения - "switch",
иначе "unknown".
Дана переменная:
val payload: Any = "tasker"
Если там строка, выведите ее длину.
Если число - само число.
Если логическое значение - "yes" или "no".
Иначе выведите "skip".