7. Null Safety: Adiós, NullPointerException
El problema que Kotlin resuelve
El NullPointerException es el error más común en programación. Kotlin lo elimina en tiempo de compilación con su sistema de tipos.
"Si algo puede ser null, el tipo te lo dice obligatoriamente."
Tipos nullable vs no-nullable
Por defecto, las variables en Kotlin no pueden ser null. Para permitir null, agrega ?:
1 val nombre: String = "Kotlin"
2
3
4 val nullable: String? = "Kotlin"
5 nullable = null
6
7
8
9
10
11 println(nullable?.length)
Elvis Operator (?:)
Si un valor es null, usa un valor por defecto:
1 val nombre: String? = null
2
3
4 val nombreSeguro = nombre ?: "Desconocido"
5 println(nombreSeguro)
6
7
8 val texto: String? = null
9 val longitud = texto?.length ?: 0
10 println(longitud)
Non-null assertion (!!)
Úsalo solo cuando estés seguro de que no es null. Lanza excepción si lo es:
1 val nombre: String? = "Kotlin"
2 val longitud = nombre!!.length
3
4 val vacio: String? = null
5
let con nullable
Ejecuta un bloque solo si el valor no es null:
1 val email: String? = "ana@mail.com"
2
3 email?.let {
4 println("Enviando correo a: $it")
5
6 }
7
8 val vacio: String? = null
9 vacio?.let {
10 println("Esto NO se imprime")
11 }
💻 Misión
Crea una variable nullable Int?. Usa ?.let para imprimir su valor si no es null, y usa ?: para asignar 0 si lo es.
👁️ Ver solución sugerida
1 fun main() {
2 val puntos: Int? = null
3 val puntosSeguro = puntos ?: 0
4 println("Puntos: $puntosSeguro")
5
6 puntos?.let {
7 println("Tienes $it puntos")
8 } ?: println("No hay puntos registrados")
9 }
Pon a prueba tu null safety
Son 5 preguntas de opción múltiple sobre esta lección. ¡Evalúa tus conocimientos!