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 ?:
1val nombre: String = "Kotlin"
2
3
4val nullable: String? = "Kotlin"
5nullable = null
6
7
8
9
10
11println(nullable?.length)
Elvis Operator (?:)
Si un valor es null, usa un valor por defecto:
1val nombre: String? = null
2
3
4val nombreSeguro = nombre ?: "Desconocido"
5println(nombreSeguro)
6
7
8val texto: String? = null
9val longitud = texto?.length ?: 0
10println(longitud)
Non-null assertion (!!)
Úsalo solo cuando estés seguro de que no es null. Lanza excepción si lo es:
1val nombre: String? = "Kotlin"
2val longitud = nombre!!.length
3
4val vacio: String? = null
5
let con nullable
Ejecuta un bloque solo si el valor no es null:
1val email: String? = "ana@mail.com"
2
3email?.let {
4 println("Enviando correo a: $it")
5
6}
7
8val vacio: String? = null
9vacio?.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
1fun 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!