Sobes.tech
Junior

Selgitage 'when' väljendi kontseptsiooni Kotlin programmeerimiskeeles.

sobes.tech AI

Vastus AI-lt

Kotlinis when ir universāls strukturālais operators, kas aizvieto klasisko switch citās valodās. To var izmantot kā izteiksmi (atgriežot vērtību) vai kā operatoru.

Galvenās iespējas:

  • Vērtību salīdzināšana: Atbilstība ar konkrētām vērtībām.

    fun describe(obj: Any): String =
        when (obj) {
            1           -> "Üks"
            "Hello"     -> "Tere"
            is Long     -> "Pikk"
            !is String  -> "Ei ole string"
            else        -> "Tundmatu"
        }
    
  • Tüübi kontroll (is/!is): Ühilduvus andmetüüpidega.

  • Kattuvuse kontroll (in/!in): Kontroll, kas väärtus kuulub vahemikku või kogumikku.

    fun checkRange(x: Int): String =
        when (x) {
            in 1..10   -> "Positiivne arv vahemikus"
            !in 10..20 -> "Ei ole teises vahemikus"
            else       -> "Ei ole ülaltoodud"
        }
    
  • Ilma argumentideta: Kasutatakse paindlikuma asendajana if-else if-else ahelale. Tingimused hinnatakse järjekorras.

    fun checkBoolean(x: Boolean, y: Boolean): String =
        when {
            x && y -> "Mõlemad tõsi"
            !x && !y -> "Mõlemad väär"
            else -> "Segamini"
        }
    
  • Väärtuse tagastamine: Kui when kasutatakse väljendina, peab see olema täielik (kattuma kõigi võimalike juhtumitega või omama else haru).

when parandab koodi loetavust ja turvalisust võrreldes traditsioonilise switch-ga.