Junior
Vysvětlete koncept výrazu 'when' v programovacím jazyce Kotlin.
sobes.tech AI
Odpověď od AI
when v Kotlinu je univerzální strukturový operátor, který nahrazuje klasický switch v jiných jazycích. Může být použit jako výraz (vracející hodnotu) nebo jako operátor.
Hlavní funkce:
-
Porovnání hodnot: Shoda s konkrétními hodnotami.
fun describe(obj: Any): String = when (obj) { 1 -> "Jedna" "Hello" -> "Pozdrav" is Long -> "Dlouhý" !is String -> "Není řetězec" else -> "Neznámý" } -
Kontrola typu (
is/!is): Shoda s datovými typy. -
Kontrola zahrnutí (
in/!in): Kontrola, zda hodnota patří do rozsahu nebo kolekce.fun checkRange(x: Int): String = when (x) { in 1..10 -> "Kladné číslo v rozsahu" !in 10..20 -> "Není v druhém rozsahu" else -> "Žádný z výše uvedených" } -
Bez argumentu: Používá se jako flexibilnější náhrada řetězce
if-else if-else. Podmínky jsou vyhodnocovány postupně.fun checkBoolean(x: Boolean, y: Boolean): String = when { x && y -> "Obě pravdivé" !x && !y -> "Obě nepravdivé" else -> "Smíšené" } -
Návrat hodnoty: Pokud je
whenpoužíváno jako výraz, musí být úplné (pokrytí všech možných případů nebo mít větevelse).
when zlepšuje čitelnost a bezpečnost kódu ve srovnání s tradičním switch.