Wyjaśnij koncepcję wyrażenia 'when' w języku programowania Kotlin.
sobes.tech AI
Odpowiedź od AI
when w Kotlinie to uniwersalny operator strukturalny, który zastępuje klasyczny switch w innych językach. Może być używany jako wyrażenie (zwracając wartość) lub jako operator.
Główne możliwości:
-
Porównanie wartości: Dopasowanie do konkretnych wartości.
fun describe(obj: Any): String = when (obj) { 1 -> "Jeden" "Hello" -> "Powitanie" is Long -> "Długi" !is String -> "Nie jest łańcuchem" else -> "Nieznany" } -
Sprawdzanie typu (
is/!is): Dopasowanie do typów danych. -
Sprawdzanie przynależności (
in/!in): Sprawdzanie, czy element należy do zakresu lub kolekcji.fun checkRange(x: Int): String = when (x) { in 1..10 -> "Pozytywna liczba w zakresie" !in 10..20 -> "Nie w drugim zakresie" else -> "Żaden z powyższych" } -
Bez argumentu: Używane jako bardziej elastyczna zamiana łańcuchów
if-else if-else. Warunki są oceniane kolejno.fun checkBoolean(x: Boolean, y: Boolean): String = when { x && y -> "Oba prawdziwe" !x && !y -> "Oba fałszywe" else -> "Mieszane" } -
Zwracanie wartości: Jeśli
whenjest używane jako wyrażenie, musi być wyczerpujące (obejmować wszystkie możliwe przypadki lub mieć gałąźelse).
when poprawia czytelność i bezpieczeństwo kodu w porównaniu z tradycyjnym switch.