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 un raccourci sur une seule ligne pour une instruction 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"
endUtilisez l'opérateur ternaire lorsque les deux branches retournent des valeurs courtes. Si l'une ou l'autre des branches nécessite plus d'une expression, revenez à un véritable if/else : en mettre trop dans un ternaire le rend difficile à lire.
Vous pouvez l'utiliser directement à l'intérieur d'autres expressions, y compris l'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 (pas de blocs if/else), affichez exactement :
<n> is <label>où label est :
positivequandn > 0negativequandn < 0zeroquandn == 0
Astuce : utilisez une ternaire imbriquée, 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
# À FAIRE : utiliser une expression ternaire pour construire l'étiquette, 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 - String Weaver4Blocs, Procs & Lambdas
Qu'est-ce qu'un bloc ?do..end vs AccoladesLe mot-clé yieldParamètres de blocProcs et LambdasRécapitulatif - Itérateur personnalisé7Hashes - Partie 2
Hash.new avec des valeurs par défautItérer sur les HashesHashes imbriquésFusion et transformationRécapitulatif - Compteur de fréquence10Projet - Dossiers étudiants
Présentation du projetAjouter un étudiant2Intervalles
Qu'est-ce qu'un intervalle ?Méthodes d'intervalleLes intervalles dans Case / WhenRécapitulatif - Pratique des intervalles5La puissance d'Enumerable
Select et RejectChaîner MapReduce / Injectcount, all?, any?, none?group_by et partitionsort_by, min_by, max_byRécapitulatif - Data Pipeline8Prise de décision avancée
Case avec Classes & Regexwhen à valeurs multiplesOpérateur ternaireif / unless en ligneRécapitulatif - Classificateur de notesEntraînez-vous par vous-même : Compilateur Ruby en ligne