Saltar al contenido

¿Qué es el operador de doble explosión (!!) de Kotlin?

Es imprescindible comprender el código bien previamente a adaptarlo a tu trabajo y si ttienes algo que aportar puedes comentarlo.

Solución:

Este es un tipo anulable inseguro (T?) conversión a un tipo no anulable (T),
!! tirará NullPointerException si el valor es null.

Está documentado aquí junto con los medios de Kotlin de null-la seguridad.

Aquí hay un ejemplo para hacer las cosas más claras. Digamos que tienes esta función

fun main(args: Array) 
    var email: String
    email = null
    println(email)

Esto producirá el siguiente error de compilación.

Null can not be a value of a non-null type String

Ahora puede evitarlo agregando un signo de interrogación al String escriba para que sea anulable.

Entonces tenemos

fun main(args: Array) 
    var email: String?
    email = null
    println(email)

Esto produce un resultado de

null

Ahora, si queremos que la función arroje una excepción cuando el valor del correo electrónico sea null, podemos agregar dos exclamaciones al final del correo electrónico. Como esto

fun main(args: Array) 
    var email: String?
    email = null
    println(email!!)

Esto arrojará un KotlinNullPointerException

Operador de doble explosión es una excelente opción para los fanáticos de NullPointerException (o NPE para abreviar).

los no-null operador de afirmación!! convierte cualquier valor en un no-null escribe y lanza una excepción si el valor es null.

val nonNull = a!!.length

para que puedas escribir a!!y esto devolverá un no-null valor de a (a String aquí por ejemplo) o lanzar una NPE si a es null.

Si desea un NPE, puede obtenerlo, pero debe solicitarlo explícitamente. Este operador debe usarse en los casos en que el desarrollador está garantizando: el valor nunca será null.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *