Ternärer Operator
Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy. Lektion 40 von 56.
Der ternäre Operator ist eine einzeilige Kurzform für ein if/else, die einen Wert zurückgibt. Die Syntax lautet condition ? value_if_true : value_if_false.
age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status # EligibleEs ist dasselbe wie:
status = if age >= 18
"Eligible"
else
"Not Eligible"
endVerwende den ternären Operator, wenn beide Zweige kurze Werte zurückgeben. Wenn einer der Zweige mehr als einen Ausdruck benötigt, verwende stattdessen ein echtes if/else: Zu viel in einen ternären Operator zu packen, macht ihn schwer lesbar.
Du kannst es direkt innerhalb anderer Ausdrücke verwenden, einschließlich Interpolation:
count = 1
puts "#{count} item#{count == 1 ? "" : "s"}" # 1 Element
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}" # 5 ElementeAufgabe
EinfachLies eine Ganzzahl n aus der Eingabe. Gib mithilfe des ternären Operators (ohne if/else-Blöcke) genau Folgendes aus:
<n> is <label>wobei label Folgendes ist:
positive, wennn > 0negative, wennn < 0zero, wennn == 0
Hinweis: Verwende einen verschachtelten ternären Operator: condition ? a : (other_condition ? b : c).
Für die Eingabe 5 lautet die Ausgabe 5 is positive. Für 0 lautet sie 0 is zero.
Probier es selbst
n = gets.to_i
# TODO: verwende einen ternären Ausdruck, um das Label zu erstellen, dann puts
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Programmfluss
1Strings im Detail
Überblick über String-MethodenString-InterpolationStrings durchlaufenSplitten und VerbindenRückblick – String Weaver4Blocks, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas Schlüsselwort yieldBlock-ParameterProcs und LambdasRückblick – Benutzerdefinierter Iterator2Bereiche
Was ist ein Bereich?BereichsmethodenBereiche in Case / WhenWiederholung – Übung zu Bereichen5Das Enumerable-Kraftpaket
Select und RejectMap verkettenReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Datenpipeline8Fortgeschrittene Entscheidungsfindung
Case mit Klassen & Regexwhen mit mehreren WertenTernärer OperatorInline-if / unlessRückblick – NotenklassifiziererÜbe selbstständig: Online-Ruby-Compiler