La sintaxis del operador ternario de Ruby

Aquí tienes un ejemplo rápido de código fuente de Ruby, que muestra cómo he utilizado el operador ternario de Ruby en un método que imprime un registro CSV para una clase que he definido:

def print_csv_record last_name.length==0 ? printf(",") : printf("\"%s\",", last_name) first_name.length==0 ? printf(",") : printf("\"%s\",", first_name) city.length==0 ? printf(",") : printf("\"%s\"", city) printf("\n")end

Como puedes ver en ese método, cada línea utiliza el operador ternario para tomar la siguiente decisión:

  1. Si la longitud del campo dado es igual a 0, utiliza la primera sentencia printf.
  2. De lo contrario, utilice la segunda sentencia printf.

Puede parecer poco, pero es así. Lo bueno es que es mucho más corto que la sintaxis equivalente if/then, y sigue siendo muy fácil de leer.

Si quieres un poco más de información sobre el operador ternario de Ruby, no dudes en seguir leyendo.

Sintaxis general del operador ternario

Como puedes deducir del ejemplo anterior, la sintaxis general del operador ternario de Ruby tiene este aspecto:

test-expression ? if-true-expression : if-false-expression

En mi ejemplo anterior, mi primer test-expression tenía este aspecto:

last_name.length==0

y su if-true-expression se veía así:

printf(",")

y su if-false-expression se veía así:

printf("\"%s\",", last_name)

Con suerte, demostrar la sintaxis general del operador ternario ayudó a hacer mi código anterior un poco más comprensible.

Un segundo ejemplo

Si quieres un ejemplo más del operador ternario, aquí tienes uno que utiliza una comparación de prueba numérica, seguida de dos posibles sentencias puts, una que se ejecutará si la prueba se evalúa como verdadera, y otra que se ejecutará si la prueba se evalúa como falsa:

# set the speedspeed = 90# somewhere later in the program ...speed > 55 ? puts("I can't drive 55!") : puts("I'm a careful driver")

Como se puede adivinar, este segmento de código imprimirá:

I can't drive 55!

(Que también resume mis hábitos de conducción.)

El operador ternario es genial. Puede acortar tus declaraciones if/then, y aún así mantener tu código Ruby legible.