Valori di verità in Ruby
nil e false
Valori di verità in Ruby è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ruby Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ruby Academy include 4 lezioni in totale.
Che cos'è la truthiness
In una condizione, Ruby non richiede un valore booleano rigoroso. Qualsiasi valore viene trattato come truthy o falsy. Conoscere questa regola evita bug difficili da individuare.
if "hello"
puts "Strings are truthy"
endSolo due valori falsy
La regola di Ruby è straordinariamente semplice: solo false e nil sono falsy. Tutto il resto è truthy.
puts "nil is falsy" unless nil
puts "false is falsy" unless falseZero è truthy
A differenza di molti linguaggi, in Ruby 0 è truthy. Lo sono anche una stringa vuota e un array vuoto. Faccia attenzione se proviene da C o Python.
if 0
puts "0 is truthy in Ruby"
end
if ""
puts "empty string is truthy too"
endIntroduzione a nil
nil rappresenta l'assenza di un valore. I metodi restituiscono spesso nil quando non hanno nulla da restituire, ad esempio quando manca una chiave in un hash.
user = { name: "Ada" }
puts user[:email].inspect # missing key returns nilVerificare nil
Utilizzi nil? per eseguire un controllo esplicito. Restituisce true solo per nil.
x = nil
y = 0
puts x.nil?
puts y.nil?L'operatore &&
&& restituisce il primo operando falsy oppure l'ultimo operando se sono tutti truthy. Valuta gli operandi in cortocircuito: il lato destro non viene valutato se quello sinistro è falsy.
puts (nil && "never").inspect
puts ("a" && "b").inspectL'operatore ||
|| restituisce il primo operando truthy. Questo lo rende perfetto per i valori predefiniti.
name = nil
display = name || "Guest"
puts displayAssegnazione condizionale ||=
a ||= b assegna b ad a solo se a è attualmente nil o false. È il modo idiomatico per impostare un valore predefinito.
config = {}
config[:timeout] ||= 30
config[:timeout] ||= 99 # already set, ignored
puts config[:timeout]Attenzione al valore predefinito falsy
Poiché false è falsy, || può sovrascrivere un valore legittimo false. Quando false ha un significato, controlli invece nil?.
enabled = false
result = enabled || true # oops, becomes true
puts result
safe = enabled.nil? ? true : enabled
puts safeL'operatore di navigazione sicura
&. chiama un metodo solo se il ricevitore non è nil; in caso contrario restituisce nil invece di generare un errore.
name = nil
puts name&.upcase.inspect # no NoMethodError
name = "ruby"
puts name&.upcaseRiunire il tutto
Le regole della truthiness permettono di scrivere codice espressivo e conciso, ma tenga presenti i casi limite:
- Solo
nilefalsesono falsy. 0,""e[]sono tutti truthy.- Utilizzi
nil?quando un verofalseè significativo.
values = [0, "", [], nil, false]
values.each do |v|
puts "#{v.inspect} => #{v ? "truthy" : "falsy"}"
endVerifica rapida
Verifichi la sua padronanza della truthiness in Ruby.
Riepilogo
Ha imparato la truthiness in Ruby:
- Solo
nilefalsesono falsy. nil?verifica esplicitamente la presenza di nil.&&e||restituiscono gli operandi e valutano in cortocircuito.||=imposta i valori predefiniti;&.protegge dai ricevitori nil.
username = nil
username ||= "anonymous"
puts "Welcome, #{username}"Domande Frequenti
La lezione «Valori di verità in Ruby» è gratuita?
Sì — il testo completo di «Valori di verità in Ruby» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ruby Academy, passa a CoddyKit PRO. Il corso Ruby Academy include 4 lezioni in totale.
Cosa imparerò in «Valori di verità in Ruby»?
nil e false Eserciti Ruby Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Ruby Academy?
Non è richiesta alcuna esperienza precedente. Ruby Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Valori di verità in Ruby»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Ruby Academy?
Sì. Ogni lezione Ruby Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- if, unless, ternary
- Espressioni case/when
- Valori di verità in Ruby
- Clausole di guardia