Rubí? Operador
En Ruby, el ? El operador es un operador ternario. Se usa como una taquigrafía para una declaración if ... else. La sintaxis es la siguiente:
condición ? Action_if_true: Action_if_false
En este caso, la condición se evalúa como verdadera o falsa. Si la condición es verdadera, la expresión antes de: se ejecuta. De lo contrario, la expresión después de: se ejecuta.
Podemos demostrar esto usando un ejemplo como se muestra a continuación:
x = 5
pone x> 0 ? "positivo negativo"
En este caso, el código probará si el valor de x es mayor que 0. Si es cierto, el bloque imprimirá positivo. De lo contrario, imprimirá negativo.
IRB (principal): 002: 0> Ponte x> 0 ? "positivo negativo"
positivo
=> nulo
El mismo caso se aplica si el valor es negativo como se muestra:
IRB (principal): 003: 0> x = -5
IRB (principal): 004: 0> Ponte x> 0 ? "positivo negativo"
negativo
=> nulo
También puede encadenar múltiples condiciones utilizando el ? Operador como se muestra en el siguiente ejemplo:
x = 5
pone x> 0 ? "Positivo": x == 0 ? "cero": "negativo"
En este caso, la consulta probará el valor de x en tres condiciones. Si el valor es mayor que 0, el código imprimirá positivo. Si el valor es igual a cero, el código imprimirá la cadena cero. Y finalmente, si ninguna de esas condiciones es verdad, el código imprimirá "negativo."
También podemos usar el ternario ? operador en un método y nombres de variables. Esto se conoce como el "operador de navegación segura", o & &. operador y se utiliza para verificar si el receptor de la llamada del método no es nulo antes de llamar al método.
x = "Hola"
X&.upcase # hola
y = nulo
y &.upcase # nil
También podemos usar el operador ternario para asignar el valor como se demuestra a continuación:
x = 5
y = x> 0 ? 1: -1
En este caso, y tendrá el valor de 1.
Conclusión
Esto cubrió los conceptos básicos de trabajar con el operador ternario Ruby para realizar varias operaciones. Vale la pena señalar que el operador ternario tiene una precedencia más baja que la mayoría de los otros operadores en Ruby. Por lo tanto, es posible que deba usar paréntesis para garantizar que las expresiones se evalúen en el orden previsto.
Aunque el operador ternario es adecuado para configurar rápidamente una declaración condicional, no proporciona una buena legibilidad de código. Por lo tanto, recomendamos usar el tradicional if ... de lo contrario donde sea necesario.