Generalidades

Uso de Safe Call y Elvis Operator en Kotlin | Autor: Abhas Kumar | Julio de 2021

Abbas Kumar

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.

1*qvvByzJTYi7 FGmNwKMCuA
Uso seguro del operador de llamadas. (Foto 1)

¿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!

Figura 2. Uso de la salida de Safe Call Operator

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.

Figura 3-Ejemplo de un operador de llamada segura

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.

Figura 4-Un programa que no aplica una verificación nula a una declaración de tipo anulable

Como puedes ver la advertencia Bobina rojaVeamos qué devuelve cuando ejecutamos el programa.

Figura 5-Error al no aplicar la verificación nula a la declaración de tipo que acepta valores NULL

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:

Figura 6-Programación con el operador de Elvis.

Debe considerar en qué se diferencia de un operador de llamadas seguras. Para comprender la diferencia primero, debe observar los resultados del procedimiento anterior.

Figura 7-El resultado del programa anterior usando Elvis Operator.

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

LEER  FragmentPagerAdapter y FragmentStatePagerAdapter | Medio

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba