Sobes.tech
Junior

Explica el concepto de la expresión 'when' en el lenguaje de programación Kotlin.

sobes.tech AI

Respuesta de la IA

when en Kotlin es un operador estructural universal que reemplaza al clásico switch en otros lenguajes. Puede usarse como una expresión (que devuelve un valor) o como un operador.

Funciones principales:

  • Comparación de valores: Coincidencia con valores específicos.

    fun describe(obj: Any): String =
        when (obj) {
            1           -> "Uno"
            "Hello"     -> "Saludo"
            is Long     -> "Largo"
            !is String  -> "No es una cadena"
            else        -> "Desconocido"
        }
    
  • Verificación de tipo (is/!is): Coincidencia con tipos de datos.

  • Verificación de pertenencia (in/!in): Comprobación de inclusión en un rango o colección.

    fun checkRange(x: Int): String =
        when (x) {
            in 1..10   -> "Número positivo en rango"
            !in 10..20 -> "No en el segundo rango"
            else       -> "Ninguno de los anteriores"
        }
    
  • Sin argumento: Se usa como una sustitución más flexible de cadenas if-else if-else. Las condiciones se evalúan en secuencia.

    fun checkBoolean(x: Boolean, y: Boolean): String =
        when {
            x && y -> "Ambos verdaderos"
            !x && !y -> "Ambos falsos"
            else -> "Mixto"
        }
    
  • Devolver valor: Si when se usa como una expresión, debe ser exhaustivo (cubrir todos los casos posibles o tener una rama else).

when mejora la legibilidad y seguridad del código en comparación con el tradicional switch.