¿Qué es null/nil en Kotlin y cómo trabajar con él?
¡Hola a todos! Empecé a estudiar Kotlin después de Java y no logro entender completamente el concepto de null en este lenguaje. En Java, null es una referencia normal que puede asignarse a cualquier objeto, y constantemente luchamos con NullPointerException. En Kotlin, según entendí, los tipos son non-null por defecto, y para trabajar con null se deben usar construcciones especiales.
Tengo varias preguntas y problemas concretos:
- ¿Entiendo correctamente que
String?(con signo de interrogación) es un tipo nullable, yStringes non-null? ¿Y si intento asignar null a una variable de tipoStringsin el signo de interrogación, obtendré un error de compilación? - Intenté escribir un código simple, pero no compila:
fun main() {
val name: String? = null
println(name.length) // Error: Only safe (?.) or non-null asserted (!!.) calls are allowed
}Esperaba que se lanzara una excepción en tiempo de ejecución, como en Java.