Operador Elvis - Tensho97/Aprende-a-Aprender GitHub Wiki
En ciertos lenguajes de programación, el operador Elvis, a menudo escrito ?:
, or
o ||
, es un operador binario que devuelve su primer operando si ese operando se evalúa a un valor verdadero, y si la respuesta es un valor falso (false) devuelve su segundo operando.
El operador Elvis es una variante del operador condicional, ? : en el sentido de que la expresión con el operador Elvis A ?: B
es aproximadamente equivalente a la expresión A ? A : B
.
Algunos lenguajes de programación informática (por ejemplo, C # ) tienen diferentes semánticas para este operador: en lugar de que el primer operando tenga que dar como resultado un valor booleano, debe dar como resultado una referencia de objeto. Si la referencia de objeto resultante no es nula, se devuelve. De lo contrario, se devuelve el valor del segundo operando (que también puede ser nulo). Esta distinción es necesaria porque en C #, las referencias no son convertibles implícitamente a un valor booleano.
Ejemplos:
Variante Boolean
En un lenguaje que soporta el operador Elvis, algo como esto:
x = f() ?: g()
Hará que x sea igual al resultado de f() si ese resultado es un valor verdadero, y al resultado de g() si es falso. Es equivalente a este ejemplo, usando el operador condicional:
x = f() ? f() : g()
Como se puede ver, con el operador Elvis no pasa por el f() dos veces si es verdadero como sucede en este caso; por lo tanto, es menos redundante.
Variante de referencia de objeto
x = f() ?: "default value"
Este código dará como resultado una referencia a un objeto que se garantiza que no será nulo. La función f()
devuelve una referencia de objeto en lugar de un valor booleano. Si esta referencia existe, se devuelve, si no, se devuelve una por defecto (también se podría devolver un nulo si así se quisiera, pero no en este ejemplo).
Autora: Andrea