when jako wyrażenie
Zwracaj wartości z when
when jako wyrażenie to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.
when jako wyrażenie
Kotlinowe when to coś więcej niż instrukcja switch. Jest to wyrażenie, czyli konstrukcja tworząca wartość, którą można przypisać lub zwrócić.
Dzięki temu logika rozgałęzień jest zwięzła i czytelna.
Zwracanie wartości
Gdy when jest używane jako wyrażenie, każda gałąź dostarcza wynik. Wartość pasującej gałęzi staje się wynikiem całego wyrażenia when.
fun main() {
val day = 3
val name = when (day) {
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
else -> "Other"
}
println(name)
}else jest wymagane
Gdy when jest używane jako wyrażenie, musi być wyczerpujące. W przypadku dowolnych wartości oznacza to konieczność dodania gałęzi else.
Bez niej kompilator nie może zagwarantować utworzenia wartości.
fun grade(score: Int): String = when {
score >= 90 -> "A"
score >= 80 -> "B"
else -> "C"
}
fun main() {
println(grade(85))
}Wiele wartości w jednej gałęzi
Wiele wartości można rozdzielić przecinkami, aby przypisać je do jednej gałęzi.
Jest to czytelniejsze niż powtarzanie tego samego ciała.
fun main() {
val day = 6
val type = when (day) {
1, 2, 3, 4, 5 -> "Weekday"
6, 7 -> "Weekend"
else -> "Invalid"
}
println(type)
}when bez argumentu
Po pominięciu obiektu sprawdzanego każda gałąź staje się warunkiem logicznym.
Zastępuje to łańcuch if/else if uporządkowanym blokiem.
fun main() {
val temp = 18
val feel = when {
temp < 0 -> "Freezing"
temp < 15 -> "Cold"
temp < 25 -> "Mild"
else -> "Hot"
}
println(feel)
}Zakresy w gałęziach
Gałęzie mogą sprawdzać zakresy za pomocą in.
W ten sposób bardzo naturalnie wyraża się kategorie liczbowe.
fun main() {
val score = 73
val band = when (score) {
in 0..59 -> "Fail"
in 60..79 -> "Pass"
in 80..100 -> "Excellent"
else -> "Invalid"
}
println(band)
}Sprawdzanie typów w gałęziach
Gałęzie mogą sprawdzać typy za pomocą is.
Wynik każdej gałęzi może być inny, a when zwraca wspólny typ.
fun describe(x: Any): String = when (x) {
is Int -> "Integer"
is String -> "Text"
else -> "Unknown"
}
fun main() {
println(describe(42))
println(describe("hi"))
}Bloki gałęzi
Gałąź może być blokiem zawierającym wiele instrukcji. Ostatnie wyrażenie w bloku stanowi jego wartość.
fun main() {
val n = 5
val result = when {
n > 0 -> {
val doubled = n * 2
"Positive, doubled is " + doubled
}
else -> "Non-positive"
}
println(result)
}Bezpośrednie zwracanie when
Funkcja może bezpośrednio zwracać wyrażenie when za pomocą ciała będącego pojedynczym wyrażeniem.
Jest to bardzo częsty i przejrzysty styl kodu Kotlin.
fun sign(n: Int): String = when {
n > 0 -> "positive"
n < 0 -> "negative"
else -> "zero"
}
fun main() {
println(sign(-4))
}Przechwytywanie wartości sprawdzanej
Wartość sprawdzaną można zadeklarować wewnątrz when, aby była dostępna w gałęziach.
Dzięki temu tymczasowa wartość ma ściśle ograniczony zakres.
fun describeLength(text: String): String = when (val len = text.length) {
0 -> "empty"
in 1..5 -> "short (" + len + ")"
else -> "long (" + len + ")"
}
fun main() {
println(describeLength("hello"))
}Połączenie wszystkiego
Jako wyrażenie when jest wydajnym mechanizmem tworzenia wartości:
- Każda gałąź dostarcza wynik
elsezapewnia wyczerpujący charakter wyrażenia- Obsługuje przecinki, zakresy, typy i bloki
fun ticketPrice(age: Int): Int = when {
age < 6 -> 0
age < 18 -> 10
age >= 65 -> 8
else -> 15
}
fun main() {
println(ticketPrice(4))
println(ticketPrice(70))
}Szybki test
Sprawdź swoje rozumienie when jako wyrażenia.
Podsumowanie
Dowiedziałeś się, jak używać when jako wyrażenia:
- Zwraca wartość pasującej gałęzi
- Wymaga
else, aby pozostać wyczerpujące - Obsługuje przecinki, zakresy, sprawdzanie typów i bloki
Następnie zobaczysz, jak smart casty pozwalają kompilatorowi automatycznie zawężać typy.
Często zadawane pytania
Czy lekcja „when jako wyrażenie” jest bezpłatna?
Tak — pełny tekst „when jako wyrażenie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „when jako wyrażenie”?
Zwracaj wartości z when Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?
Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „when jako wyrażenie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?
Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- when jako wyrażenie
- Smart casty
- Operatory is i as
- Kompletny when