Kotlin Academy · leksjon

when som uttrykk

Returner verdier fra when

Leksjon 1 av 413 trinn

when som uttrykk er en gratis leksjon i Kotlin Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Kotlin Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.

when som uttrykk

Kotlin sin when er mer enn en switch-setning. Det er et uttrykk, noe som betyr at det produserer en verdi som kan tilordnes eller returneres.

Dette gjør forgreningslogikk kortfattet og lesbar.

Returnere en verdi

Når when brukes som et uttrykk, leverer hver gren et resultat. Verdien fra grenen som samsvarer, blir resultatet av hele when-uttrykket.

fun main() {
    val day = 3
    val name = when (day) {
        1 -> "Monday"
        2 -> "Tuesday"
        3 -> "Wednesday"
        else -> "Other"
    }
    println(name)
}

else er påkrevd

Når when brukes som et uttrykk, må det dekke alle tilfeller. For vilkårlige verdier betyr det en else-gren.

Uten den kan kompilatoren ikke garantere at det produseres en verdi.

fun grade(score: Int): String = when {
    score >= 90 -> "A"
    score >= 80 -> "B"
    else -> "C"
}

fun main() {
    println(grade(85))
}

Flere verdier per gren

Skill flere verdier med komma for å la dem dele én gren.

Dette er ryddigere enn å gjenta samme innhold.

fun main() {
    val day = 6
    val type = when (day) {
        1, 2, 3, 4, 5 -> "Weekday"
        6, 7 -> "Weekend"
        else -> "Invalid"
    }
    println(type)
}

when uten argument

Utelat emnet, så blir hver gren en boolsk betingelse.

Dette erstatter en kjede med if/else if med en ryddig blokk.

fun main() {
    val temp = 18
    val feel = when {
        temp < 0 -> "Freezing"
        temp < 15 -> "Cold"
        temp < 25 -> "Mild"
        else -> "Hot"
    }
    println(feel)
}

Intervaller i grener

Grener kan teste intervaller med in.

Dette uttrykker numeriske kategorier på en svært naturlig måte.

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)
}

Typesjekker i grener

Grener kan kontrollere typer med is.

Resultatet fra hver gren kan være forskjellig, og when returnerer den felles typen.

fun describe(x: Any): String = when (x) {
    is Int -> "Integer"
    is String -> "Text"
    else -> "Unknown"
}

fun main() {
    println(describe(42))
    println(describe("hi"))
}

Grenblokker

En gren kan være en blokk med flere setninger. Det siste uttrykket i blokken er verdien.

fun main() {
    val n = 5
    val result = when {
        n > 0 -> {
            val doubled = n * 2
            "Positive, doubled is " + doubled
        }
        else -> "Non-positive"
    }
    println(result)
}

Returnere when direkte

En funksjon kan returnere et when-uttrykk direkte med et énuttrykksfunksjonskropp.

Dette er en svært vanlig og ryddig Kotlin-stil.

fun sign(n: Int): String = when {
    n > 0 -> "positive"
    n < 0 -> "negative"
    else -> "zero"
}

fun main() {
    println(sign(-4))
}

Fange opp emnet

Emnet kan deklareres inne i when, slik at det er tilgjengelig i grenene.

Dette begrenser omfanget til en midlertidig verdi.

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"))
}

Slik henger det sammen

Som uttrykk er when en kraftig verdiprodusent:

  • Hver gren leverer et resultat
  • else gjør uttrykket uttømmende
  • Støtter kommaer, intervaller, typer og blokker
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))
}

Kort kontroll

Test forståelsen av when som uttrykk.

Oppsummering

Du har lært å bruke when som et uttrykk:

  • Det returnerer verdien fra grenen som samsvarer
  • Trenger else for å dekke alle tilfeller
  • Støtter kommaer, intervaller, typesjekker og blokker

Deretter skal du se hvordan smart-casts lar kompilatoren snevre inn typer for deg.

Gratis å komme i gang

Lær deg Kotlin med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
51
Leksjoner
203

Ofte stilte spørsmål

Er leksjonen «when som uttrykk» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Kotlin Academy, inkludert «when som uttrykk», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «when som uttrykk»?

Returner verdier fra when Du øver på Kotlin Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Kotlin Academy?

Ingen tidligere erfaring er nødvendig. Kotlin Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «when som uttrykk»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Kotlin Academy-leksjonen?

Ja. Alle Kotlin Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. when som uttrykk
  2. Smart-cast
  3. is- og as-operatorene
  4. Uttømmende when
← Tilbake til Kotlin Academy