Sobes.tech
Junior

Explicați conceptul expresiei 'when' în limbajul de programare Kotlin.

sobes.tech AI

Răspuns de la AI

when în Kotlin este un operator structural universal care înlocuiește switch clasic în alte limbaje. Poate fi utilizat ca expresie (returnând o valoare) sau ca operator.

Funcții principale:

  • Compararea valorilor: Potrivire cu valori specifice.

    fun describe(obj: Any): String =
        when (obj) {
            1           -> "Un"
            "Hello"     -> "Salut"
            is Long     -> "Lung"
            !is String  -> "Nu este un șir"
            else        -> "Necunoscut"
        }
    
  • Verificarea tipului (is/!is): Potrivire cu tipuri de date.

  • Verificarea de apartenență (in/!in): Verificare dacă valoarea aparține unui interval sau colecție.

    fun checkRange(x: Int): String =
        when (x) {
            in 1..10   -> "Număr pozitiv în interval"
            !in 10..20 -> "Nu în al doilea interval"
            else       -> "Nici unul dintre cele de mai sus"
        }
    
  • Fără argument: Folosit ca o înlocuire mai flexibilă pentru lanțurile if-else if-else. Condițiile sunt evaluate în succesiune.

    fun checkBoolean(x: Boolean, y: Boolean): String =
        when {
            x && y -> "Ambele adevărate"
            !x && !y -> "Ambele false"
            else -> "Mixe"
        }
    
  • Returnarea valorii: Dacă when este folosit ca expresie, trebuie să fie exhaustiv (să acopere toate cazurile posibile sau să aibă o ramură else).

when îmbunătățește lizibilitatea și siguranța codului comparativ cu switch tradițional.