Sobes.tech
Junior

¿Qué son los tipos 'nullable' en Kotlin y cómo funcionan?

sobes.tech AI

Respuesta de la IA

Los tipos anulables en Kotlin son tipos que pueden contener tanto un valor como null. Se indican explícitamente con el símbolo ? después del nombre del tipo.

El funcionamiento se basa en el sistema de tipos de Kotlin, que previene NullPointerException durante la compilación. El compilador requiere una verificación explícita de null antes de acceder a los miembros de un objeto de tipo nullable.

Las principales formas de trabajar de manera segura con tipos nullable son:

  • Verificación de null usando if:

    fun printLength(str: String?) {
        if (str != null) {
            println(str.length) // Llamada segura después de la verificación de null
        } else {
            println("Cadena null")
        }
    }
    
  • Operador de llamada segura (?.): Devuelve null si el objeto es null, de lo contrario, el resultado de la llamada.

    val safeLength: Int? = str?.length // Si str es null, safeLength será null
    
  • Operador Elvis (?:): Permite proporcionar un valor predeterminado en caso de que la expresión a la izquierda del operador sea null.

    val lengthOrDefault: Int = str?.length ?: 0 // Si str es null, lengthOrDefault será 0
    
  • Operador de afirmación no nula explícita (!!): Convierte un tipo nullable en no nullable. Debe usarse con precaución, ya que lanzará NullPointerException si el valor es null.

    val assertedLength: Int = str!!.length // Lanzará NPE si str es null
    
  • Funciones let/run/apply/also con llamada segura:

    str?.let {
        // El código se ejecutará solo si str no es null
        println("Longitud de la cadena: ${it.length}")
    }
    

El sistema de tipos nullable de Kotlin aumenta significativamente la seguridad y reduce la probabilidad de NullPointerException en comparación con lenguajes donde null puede ser asignado a cualquier tipo sin una indicación explícita.