Uso de Safe Call y Elvis Operator en Kotlin | Autor: Abhas Kumar | Julio de 2021
Este artículo es adecuado para personas que tienen conocimientos básicos de «nulabilidad». La única razón por la que escribí este artículo es porque me he encontrado con mucha confusión en su gramática y uso, por lo que trato de hacer que sea fácil de entender a mi manera. Hablaré específicamente sobre los dos métodos de verificación Null en Kotlin, que son ‘ Operador de llamada segura ‘ y ‘ Operador Elvis ‘.
Entonces, entendamos lo que es ‘ Llamada segura Y cómo se usa para controles nulos.
Una caja fuerte cUna especie dell está representado por el operador (?) – Se utiliza para comprobar la condición de vacío, si la expresión está vacía, volverá vacía por defecto, de lo contrario devolverá el valor indicado. Entendamos cómo se hace a través de ejemplos.
¿Qué sucedió en el procedimiento anterior? Se declara una variable de tipo String, pero obsérvela atentamente. Esta no es una cadena simple, es un tipo String (String?) Que acepta valores NULL. Esto significa que la cadena «nombre» puede estar vacía. Le indicará al compilador que utilice el operador ‘?’, También conocido como operador de llamada segura. ¡Adivina la salida!
Como puede ver, la salida es «nula». Este es el beneficio de utilizar este operador. Si la expresión tiene un valor nulo, simplemente devolverá un valor nulo sin más operaciones. Si la expresión no es nula, devolverá el resultado de la operación realizada en la variable.
El procedimiento anterior está tomado de uno de mis proyectos personales. Aquí puede ver que el tipo de la variable «executionTimer» es un CountDownTimer que acepta valores NULL. Si puede estar vacío, se verificará. En este caso, uso Safe Call Operator para realizar una verificación nula. Si no está vacío, exportTimer? .Cancel () devolverá el resultado después de ejecutar el método cancel () en «extractTimer», pero también en este caso, la variable está vacía, entonces puede simplemente adivinar el resultado devuelto. estar «vacío».
¿Qué sucede si no se comprueba la condición nula en la declaración de tipo que acepta valores NULL? Déjame mostrarte primero.
Como puedes ver la advertencia Bobina rojaVeamos qué devuelve cuando ejecutamos el programa.
Lanzará un error, o simplemente le dirá que verifique si el valor no es nulo. Por lo tanto, debe tener cuidado al realizar declaraciones de tipos que aceptan valores NULL.
Operador de Elvis (? 🙂 – Ahora entendamos qué es Elvis Operator y cuándo usarlo.
¿Ve un tipo diferente de signo «?:» Aquí. En Kotlin, este operador se llama operador de Elvis. Primero, echemos un vistazo a un programa en ejecución:
Debe considerar en qué se diferencia de un operador de llamadas seguras. Para comprender la diferencia primero, debe observar los resultados del procedimiento anterior.
Como habrá notado, el resultado impreso es 0. En el caso de Safe Operator Call, imprimirá «nulo». Ésta es la diferencia entre Safe Operator Call y Elvis Operator.
Si el valor es nulo pero se llama con un operador seguro, se devolverá «nulo» de forma predeterminada Elvis Operator se utiliza junto con Safe Call Operator, puede solicitar la salida que necesita Si el valor asignado está vacío, no es «nulo». Si se encuentra un valor nulo en la comprobación de nulabilidad, se devolverá la instrucción correcta del operador «?:».
En este caso, el valor El derecho al operador ‘?:’ es 0Por eso imprime 0 y no está vacío.
Por lo tanto, si se encuentra que el expreso está vacío durante la inspección, Elvis Operator le permite hacerlo de manera más independiente.
Por lo tanto, podemos usar estos operadores para hacer más cosas. Podemos usarlo en cualquier tipo de declaración anulable, ya sea una cadena, una matriz, una lista o cualquier otro tipo. Siempre me he centrado en las operaciones básicas y he tratado de eliminar la confusión al utilizar estas dos operaciones.
¡muchas gracias!
Puedes conectarte conmigo en Twitter—— https://twitter.com/lazy_doer