Significado de doble signo de interrogación en Ruby

Significado de doble signo de interrogación en Ruby
Al trabajar con las bases de código Ruby, puede encontrar una sintaxis que usa puntos de interrogación dobles. En este tutorial, resumiremos lo que significan estos operadores y cómo funcionan en el contexto del uso.

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.