Voici un exemple rapide de code source Ruby, montrant comment j’ai utilisé l’opérateur ternaire de Ruby dans une méthode qui imprime un enregistrement CSV pour une classe que j’ai définie :
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
Comme vous pouvez le voir dans cette méthode, chaque ligne utilise l’opérateur ternaire pour prendre la décision suivante :
- Si la longueur du champ donné est égale à 0, utilisez la première instruction
printf
. - Sinon, utilisez la deuxième instruction
printf
.
Cela peut sembler peu, mais c’est tout. Ce qui est cool, c’est que c’est beaucoup plus court que la syntaxe équivalente if
/then
, et c’est toujours très facile à lire.
Si vous souhaitez un peu plus d’informations sur l’opérateur ternaire Ruby, n’hésitez pas à lire la suite.
Syntaxe générale de l’opérateur ternaire
Comme vous pouvez le comprendre dans l’exemple précédent, la syntaxe générale de l’opérateur ternaire de Ruby ressemble à ceci :
test-expression ? if-true-expression : if-false-expression
Dans mon exemple précédent, mon premier test-expression
ressemblait à ceci :
last_name.length==0
et son if-true-expression
ressemblait à ceci:
printf(",")
et son if-false-expression
ressemblait à ceci:
printf("\"%s\",", last_name)
Espérons que la démonstration de la syntaxe générale de l’opérateur ternaire ait aidé à rendre mon code précédent un peu plus compréhensible.
Un deuxième exemple
Si vous souhaitez un autre exemple de l’opérateur ternaire, en voici un qui utilise un test de comparaison numérique, suivi de deux déclarations puts
possibles, une qui sera exécutée si le test évalue à vrai, et une autre qui sera exécutée si le test évalue à faux :
# set the speedspeed = 90# somewhere later in the program ...speed > 55 ? puts("I can't drive 55!") : puts("I'm a careful driver")
Comme vous pouvez le deviner, ce segment de code imprimera :
I can't drive 55!
(Ce qui résume aussi mes habitudes de conduite.)
L’opérateur ternaire est cool. Il peut raccourcir vos déclarations if
/then
, tout en gardant votre code Ruby lisible.