El ternario (o condicional) operador evaluará una expresión y devolverá un valor si es verdadero y otro valor si es falso. Es un poco como una taquigrafía, una declaración if compacta.
El operador ternario de Ruby tiene sus usos, pero también es un poco controvertido..
Veamos este ejemplo:
Aquí, el operador condicional se está utilizando para seleccionar entre dos cadenas. La expresión de operador completa es todo, incluido el condicional, el signo de interrogación, dos cadenas y los dos puntos. El formato general de esta expresión es el siguiente: condicional? verdadero Falso.
Si la expresión condicional es verdadera, entonces el operador evaluará como la expresión verdadera. De lo contrario, se evaluará como la expresión falsa. En este ejemplo, está entre paréntesis, por lo que no interfiere con los operadores de concatenación de cadenas que lo rodean..
En otras palabras, el operador condicional es como un Si declaración. Recuérdalo Si las declaraciones en Ruby evalúan hasta el último valor en el bloque que se ejecuta. Entonces, podría reescribir el ejemplo anterior así:
Este código es funcionalmente equivalente, y quizás un poco más fácil de entender. Si yo es mayor que 10, el Si la declaración misma evaluará la cadena "mayor que" o evaluará la cadena "menor o igual que". Esto es lo mismo que hace el operador ternario, solo que el operador ternario es más compacto.
Entonces, ¿qué usos tiene el operador ternario? Tiene usos, pero no hay muchos, y podría llevarse bien sin él.
Por lo general, se usa para calzar zapatos en valores donde los condicionales serían demasiado voluminosos. También se usa en la asignación de variables para seleccionar rápidamente entre dos valores.
Aquí hay dos casos de uso típicos que verá para el operador ternario:
Es posible que hayas notado que esto se ve bastante poco rubí. Las expresiones complejas simplemente no pertenecen a una línea en Ruby: generalmente se dividen y son más fáciles de leer. Sin embargo, verá este operador, y puede usarse de manera efectiva sin salirse de control.
Una regla a seguir es que si está utilizando este operador para seleccionar entre dos valores con un condicional simple, está bien usarlo. Si está haciendo algo más complejo, probablemente debería estar usando un Si declaración en su lugar.