Sobes.tech
Junior

Izskaidrojiet 'when' izteiksmes koncepciju Kotlin programmēšanas valodā.

sobes.tech AI

Atbilde no AI

Kotlin 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           -> "Viens"
            "Hello"     -> "Sveiciens"
            is Long     -> "Ilgs"
            !is String  -> "Nav virknes"
            else        -> "Nezināms"
        }
    
  • Tipa pārbaude (is/!is): Atbilstība datu tipiem.

  • Ietilpības pārbaude (in/!in): Pārbaude, vai vērtība pieder diapazonam vai kolekcijai.

    fun checkRange(x: Int): String =
        when (x) {
            in 1..10   -> "Pozitīvs skaitlis diapazonā"
            !in 10..20 -> "Nav otrajā diapazonā"
            else       -> "Neviens no iepriekšējiem"
        }
    
  • Bez argumenta: Izmanto kā elastīgāku aizvietotāju if-else if-else ķēdēm. Nosacījumi tiek novērtēti secīgi.

    fun checkBoolean(x: Boolean, y: Boolean): String =
        when {
            x && y -> "Abi ir patiesi"
            !x && !y -> "Abi ir nepatiesi"
            else -> "Sajaukts"
        }
    
  • Vērtības atgriešana: Ja when tiek izmantots kā izteiksme, tam jābūt izsmeļošam (jāaptver visi iespējamie gadījumi vai jābūt else daļai).

when uzlabo koda lasāmību un drošību salīdzinājumā ar tradicionālo switch.