¿Qué hace el operador !! (doble signo de exclamación) en Kotlin y cuándo debería usarse?
¡Hola a todos! Acabo de empezar a aprender Kotlin después de Java y no puedo entender el operador `!!`. Al parecer, Kotlin es elogiado por su null- seguridad, pero aquí hay un doble signo de exclamación que, según entendí, por el contrario, puede causar un NullPointerException.
Estoy escribiendo una pequeña aplicación de notas. Tengo una función que busca un usuario por ID en la base de datos y devuelve su nombre. Si el usuario no se encuentra, devuelve null. Aquí hay un ejemplo de código:
```kotlin
fun getUserName(userId: Int): String? {
// devuelve null si el usuario no se encuentra
return database.findUser(userId)?.name
}
```
Luego llamo a esta función y quiero mostrar el nombre en un TextView:
```kotlin
val name = getUserName(123)
textView.text = name // Error: Type mismatch. Required: String, Found: String?
```
El compilador se queja de que name puede ser null. Encontré en internet que se puede usar `!!`:
```kotlin
textView.text = name!!
```
Pero no entiendo: ¿para qué sirve toda esta null-