Usa el Operador Elvis en Kotlin
¿Recuerdas el operador ternario de Java? El operador de Elvis en Kotlin es algo similar a eso.
El símbolo del operador de Elvis es un signo de interrogación seguido de dos puntos (?:
). Es un operador binario que evaluará dos expresiones.
Si la expresión de la izquierda no es nula, utilizará la referencia o el valor de esa expresión. Pero si la expresión de la izquierda tiene una referencia nula, ejecutará la expresión de la derecha.
El operador Elvis evaluará la expresión del lado derecho solo si la expresión de la izquierda es nula.
Usa el Operador Elvis en Kotlin
Suponga que tiene un valor nulo en una variable pero desea usar solo un valor no nulo. Puede hacer esto usando una declaración if-else
.
fun main(args: Array<String>) {
var str: String? = null
var str1: String? = "Hi, Welcome!"
var l: Int = if (str != null) str.length else -1
var l1: Int = if (str1 != null) str1.length else -1
println("str's legth is ${l}")
println("str1's length is ${l1}")
}
Producción:
El operador Elvis permite acortar el código anterior. Por lo tanto, podemos usar el operador Elvis en lugar de escribir toda la instrucción if-else
.
Haga clic aquí para ver la demostración del ejemplo.
Aquí hay un ejemplo del operador Elvis. Intentaremos ejecutar los mismos resultados que en el código anterior, pero esta vez usando el operador Elvis.
fun main(args: Array<String>) {
var str: String? = null
var str1: String? = "Hi, Welcome!"
var l: Int = str ?.length ?: -1
var l1: Int = str1 ?.length ?: -1
println("str's legth is ${l}")
println("str1's length is ${l1}")
}
Producción:
Haga clic aquí para ver la demostración del ejemplo.
Conclusión
También podemos usar el operador Elvis en Kotlin para verificaciones de seguridad nulas. Dado que throw
y return
son expresiones, podemos usarlas en el lado derecho del operador Elvis para comprobar la seguridad nula.
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn