asserted - kotlin kotlin nullpointerexception
¿Cómo ejecutar el código si el objeto es nulo? (4)
En Kotlin, puedo ejecutar código si un objeto no es nulo como este:
data?.let {
... // execute this block if not null
}
pero ¿cómo puedo ejecutar un bloque de código si el objeto es nulo?
Aquí hay una sintaxis concisa usando el operador Elvis. Recuerde que el operador de Elvis solo ejecuta el lado derecho si el lado izquierdo se evalúa como nulo.
data ?: doSomething()
Puede usar el operador elvis y evaluar otro bloque de código con la run { ... }
:
data?.let {
// execute this block if not null
} ?: run {
// execute this block if null
}
Pero esto no parece ser tan fácil de leer como una simple declaración " if
else
".
Además, puede encontrar útiles estas preguntas y respuestas:
Puedes crear una función de infijo como esta:
infix fun Any?.ifNull(block: () -> Unit) {
if (this == null) block()
}
Entonces puedes hacer esto:
data ifNull {
// Do something
}
Solo usa un normal if
:
if (data == null) {
// Do something
}