0Pricing
Ruby Academy · Lezione

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"
end

Solo 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 false

Zero è 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"
end

Introduzione 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 nil

Verificare 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").inspect

L'operatore ||

|| restituisce il primo operando truthy. Questo lo rende perfetto per i valori predefiniti.

name = nil
display = name || "Guest"
puts display

Assegnazione 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 safe

L'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&.upcase

Riunire il tutto

Le regole della truthiness permettono di scrivere codice espressivo e conciso, ma tenga presenti i casi limite:

  • Solo nil e false sono falsy.
  • 0, "" e [] sono tutti truthy.
  • Utilizzi nil? quando un vero false è significativo.
values = [0, "", [], nil, false]
values.each do |v|
  puts "#{v.inspect} => #{v ? "truthy" : "falsy"}"
end

Verifica rapida

Verifichi la sua padronanza della truthiness in Ruby.

Riepilogo

Ha imparato la truthiness in Ruby:

  • Solo nil e false sono 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

  1. if, unless, ternary
  2. Espressioni case/when
  3. Valori di verità in Ruby
  4. Clausole di guardia
← Torna a Ruby Academy