Sobes.tech
Junior

Spiega il concetto di espressione 'when' nel linguaggio di programmazione Kotlin.

sobes.tech AI

Risposta dell'AI

when in Kotlin è un operatore strutturale universale che sostituisce il classico switch in altri linguaggi. Può essere usato come espressione (restituendo un valore) o come operatore.

Funzionalità principali:

  • Confronto di valori: Corrispondenza con valori specifici.

    fun describe(obj: Any): String =
        when (obj) {
            1           -> "Uno"
            "Hello"     -> "Saluto"
            is Long     -> "Lungo"
            !is String  -> "Non è una stringa"
            else        -> "Sconosciuto"
        }
    
  • Verifica del tipo (is/!is): Corrispondenza con tipi di dati.

  • Verifica di appartenenza (in/!in): Controllo dell'inclusione in un intervallo o collezione.

    fun checkRange(x: Int): String =
        when (x) {
            in 1..10   -> "Numero positivo in intervallo"
            !in 10..20 -> "Non nell'intervallo secondo"
            else       -> "Nessuno dei precedenti"
        }
    
  • Senza argomento: Usato come sostituto più flessibile di catene if-else if-else. Le condizioni vengono valutate in sequenza.

    fun checkBoolean(x: Boolean, y: Boolean): String =
        when {
            x && y -> "Entrambi veri"
            !x && !y -> "Entrambi falsi"
            else -> "Misto"
        }
    
  • Restituzione di valore: Se when viene usato come espressione, deve essere esaustivo (coprire tutti i casi possibili o avere un ramo else).

when migliora la leggibilità e la sicurezza del codice rispetto al tradizionale switch.