Kotlin valores nulos (kotlin null)

En este tutorial se explican los valores nulos en Kotlin (kotlin null), que son, como se usan y algunas otras funciones que se pueden emplear para valores nulos.

En Kotlin, los valores nulos son manejados de manera segura para evitar errores de NullPointerException. Esto se logra mediante el uso del operador ? y el operador de elvis ?:, así como la función let.

Una variable en Kotlin puede tener el valor de null, sólo si se declara con el operador de signo de interrogación ?. De lo contrario no puede ser null.

1. Declaración de datos Kotlin null.

En Kotlin es posible declarar un tipo de dato como null (nullable) agregando un signo de interrogación ? después del tipo de dato.

Como se muestra a continuación:

var nombre: String? = null

Sin el signo de interrogación no es posible tener un valor nulo.  Veremos el error: “Null can not be a value od a non-null type string”.

2. Operador de elvis ?: en Kotlin.

El operador de Elvis ?:, está compuesto por un signo de interrogación seguido por dos puntos.

Este operador se utiliza para proporcionar un valor predeterminado en caso de que el valor sea nulo. Kotlin null.

Por ejemplo:

val longitud: Int = nombre?.length ?: 0

En la línea de código anterior, si la variable nombre es igual a null, la variable longitud tendrá un valor de cero. En caso contrario, tendrá la largo de la variable nombre.

 

3. Operador seguro ?. en kotlin

El operador seguro ?. se utiliza para acceder a miembros de un objeto nulo sin arrojar NullPointerException. Es decir, es necesaria al momento de trabajar con valores nulos.

Por ejemplo:

val primeraLetra: Char? = nombre?.get(0)

En la siguiente imagen vemos un error al no colocar el operador de signo de interrogación.

Vemos como ya no aparece ese error colocando el operador.

Y tampoco aparecerá el error si tenemos un valor nulo.

Kotlin null

  

 

4. Operador de no-nulo !! en kotlin null

En ocasiones, tener variables que puedan ser nulas, nos puede generar problemas en el código. Hay casos donde revisamos una variable si es nula o no, pero después la usamos y nos pide verificar nuevamente si es nula o no, para situaciones similares existe el operador no nulo !! simbolizado por dos signos de exclamación.

Si estás seguro de que un valor no será nulo en un punto particular, puedes forzar su acceso utilizando el operador de no-nulo !!.

Sin embargo, esto puede arrojar una excepción NullPointerException si el valor es nulo. Úsalo con precaución.

val longitud: Int = nombre!!.length

Vemos como funciona.

Y el error si el valor llega a ser nulo.

5. Función let.

La función let te permite ejecutar un bloque de código solo si el valor es no nulo.

Por ejemplo:

val valor = nombre?.let {    “El nombre es: ” + it     }

Si nombre no es null, entonces se le dará el valor dentro de las llaves. It se refiere al valor de la variable nombre.

En el caso anterior la variable valor debe de poder se nula. Pero podemos evitar esto usando el operador Elvis, seguido por run. Como se muestra en la siguiente imagen.

Esto se podría lograr de igual manera con un if.

Esta es otra forma de manejar valores nulos en Kotlin, utilizando la estructura condicional if. Sin embargo, en muchos casos, el uso de operadores como ?. y ?: proporciona una sintaxis más concisa y legible para manejar valores nulos.

Con estas técnicas, puedes manejar valores nulos de manera segura en Kotlin y evitar errores comunes de NullPointerException.

Para más tutoriales de Kotlin ve a este enlace.

Algunos temas que pueden ser de su interés: