Opérateur ternaire
Fait partie de la section Logique et Flux du Journey Ruby de Coddy. Leçon 40 sur 56.
L’opérateur ternaire est une version abrégée sur une seule ligne d’une structure if/else qui renvoie une valeur. La syntaxe est condition ? value_if_true : value_if_false.
age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status # EligibleC’est la même chose que d’écrire :
status = if age >= 18
"Eligible"
else
"Not Eligible"
endUtilise ternary lorsque les deux branches renvoient des valeurs courtes. Si l’une des branches nécessite plus d’une expression, reviens à un véritable if/else : mettre trop de choses dans un ternary le rend difficile à lire.
Vous pouvez l’utiliser directement dans d’autres expressions, y compris dans une interpolation :
count = 1
puts "#{count} item#{count == 1 ? "" : "s"}" # 1 élément
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}" # 5 élémentsDéfi
FacileLisez un entier n depuis l’entrée. En utilisant l’opérateur ternaire (sans blocs if/else), affichez exactement :
<n> is <label>où label est :
positivelorsquen > 0negativelorsquen < 0zerolorsquen == 0
Indice : utilisez un ternaire imbriqué, condition ? a : (other_condition ? b : c).
Pour l’entrée 5, la sortie est 5 is positive. Pour 0, c’est 0 is zero.
Essayez vous-même
n = gets.to_i
# TODO: utilise une expression ternaire pour construire le label, puis puts
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et Flux
1Les chaînes de caractères en profondeur
Aperçu des méthodes de chaînesInterpolation de chaînesParcourir les chaînesSplit et JoinRécapitulatif - Tisseur de chaînes4Blocs, Procs et Lambdas
Qu'est-ce qu'un bloc ?do..end ou accoladesLe mot-clé yieldParamètres de blocProcs et LambdasRécapitulatif - Itérateur personnalisé7Hashes, 2e partie
Hash.new avec valeurs par défautParcourir les hashesHashes imbriquésFusionner et transformerRécapitulatif - Compteur de fréquences10Projet - Dossiers des étudiants
Présentation du projetAjouter un étudiant2Plages
Qu’est-ce qu’une plage ?Méthodes des plagesPlages dans Case / WhenRécapitulatif - Exercices sur les plages5Puissance des Enumerable
Select et RejectChaînage de MapReduce / Injectcount, all?, any?, none?group_by et partitionsort_by, min_by, max_byRécapitulatif - Pipeline de données8Prise de décision avancée
Case avec classes et regexwhen à plusieurs valeursOpérateur ternaireif / unless en ligneRécapitulatif – Classificateur de notesEntraînez-vous par vous-même : Compilateur Ruby en ligne