Operatore ternario
Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 40 di 56.
L’operatore ternario è una scorciatoia su una riga per un if/else che restituisce un valore. La sintassi è condition ? value_if_true : value_if_false.
age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status # IdoneoÈ come scrivere:
status = if age >= 18
"Eligible"
else
"Not Eligible"
endUsa l’operatore ternario quando entrambi i rami restituiscono valori brevi. Se uno dei due rami richiede più di un’espressione, usa un vero if/else: inserire troppe cose in un operatore ternario lo rende difficile da leggere.
Puoi usarla direttamente all'interno di altre espressioni, inclusa l'interpolazione:
count = 1
puts "#{count} item#{count == 1 ? "" : "s"}" # 1 elemento
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}" # 5 elementiSfida
FacileLeggi un intero n dall'input. Usando l'operatore ternario (senza blocchi if/else), stampa esattamente:
<n> is <label>dove label è:
positivequandon > 0negativequandon < 0zeroquandon == 0
Suggerimento: usa un ternario annidato, condition ? a : (other_condition ? b : c).
Per l'input 5 l'output è 5 is positive. Per 0 è 0 is zero.
Provalo tu
n = gets.to_i
# TODO: usa un'espressione ternaria per creare l'etichetta, poi puts
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Panoramica dei metodi delle stringheInterpolazione di stringheIterare sulle stringheDividere e unireRiepilogo - Tessitore di stringhe4Blocchi, Proc e Lambda
Che cos’è un Block?do..end vs parentesi graffeLa keyword yieldParametri del BlockProc e LambdaRiepilogo - Iteratore personalizzato7Hash in Ruby - Parte 2
Hash.new con valori predefinitiIterare sugli hashHash annidatiUnire e trasformareRipasso - Contatore di frequenza10Progetto - Registri degli studenti
Panoramica del progettoAggiungere uno studente2Intervalli
Che cos'è un intervallo?Metodi degli intervalliIntervalli in Case / WhenRiepilogo - Esercitarsi con gli intervalli5La potenza di Enumerable
Select e RejectConcatenare MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRiepilogo - Pipeline di dati8Decisioni avanzate
Case con classi e Regexwhen con più valoriOperatore ternarioif / unless inlineRiepilogo - classificatore dei votiEsercitati da solo: Compilatore Ruby online