Que sont les opérateurs ternaires (conditionnels) dans Ruby?

Le ternaire (ou conditionnel) L'opérateur évaluera une expression et renverra une valeur si elle est vraie et une autre valeur si elle est fausse. C'est un peu comme une instruction raccourcie, compacte if.

L'opérateur ternaire de Ruby a ses utilisations mais c'est aussi un peu controversé.

Exemple d'opérateur ternaire

Regardons cet exemple:

Ici, l'opérateur conditionnel est utilisé pour sélectionner entre deux chaînes. L'expression d'opérateur entière est tout, y compris le conditionnel, le point d'interrogation, deux chaînes et les deux-points. Le format général de cette expression est le suivant: conditionnel ? vrai faux.

Si l'expression conditionnelle est vraie, alors l'opérateur sera évalué comme l'expression vraie. Sinon, il sera évalué comme la fausse expression. Dans cet exemple, il est entre parenthèses, donc il n'interfère pas avec les opérateurs de concaténation de chaînes qui l'entourent.

En d'autres termes, l'opérateur conditionnel est comme un si déclaration. N'oubliez pas que si les instructions de Ruby sont évaluées à la dernière valeur du bloc qui est exécutée. Donc, vous pouvez réécrire l'exemple précédent comme ceci:

Ce code est fonctionnellement équivalent et peut-être un peu plus facile à comprendre. Si je est supérieur à 10, le si L'instruction elle-même évaluera la chaîne «supérieur à» ou évaluera la chaîne «inférieur ou égal à». C'est la même chose que fait l'opérateur ternaire, seul l'opérateur ternaire est plus compact.

Utilisations pour l'opérateur ternaire

Alors, à quoi sert l'opérateur ternaire? Il a des utilisations, mais il n'y en a pas beaucoup, et vous pourriez bien vous en passer.

Il est généralement utilisé pour chausse-pied dans des valeurs où les conditions seraient trop volumineuses. Il est également utilisé dans l'affectation des variables pour sélectionner rapidement entre deux valeurs. 

Voici deux cas d'utilisation typiques que vous verrez pour l'opérateur ternaire:

Vous avez peut-être remarqué que cela ne semble pas du tout Ruby. Les expressions complexes n'appartiennent tout simplement pas sur une seule ligne dans Ruby - elles sont généralement divisées et plus faciles à lire. Cependant, vous verrez cet opérateur, et il peut être utilisé efficacement sans perdre le contrôle.

Une règle à suivre est que si vous utilisez cet opérateur pour sélectionner entre deux valeurs avec une conditionnelle simple, vous pouvez l'utiliser. Si vous faites quelque chose de plus complexe, vous devriez probablement utiliser un si instruction à la place.