/ / Cosa giudica falso in Ruby? - rubino

Cosa giudica falso in Ruby? - rubino

false e nil valutare a falso in Ruby. Qualunque altra cosa? Si prega di fornire collegamenti a riferimenti ufficiali / autorevoli.

2.0.0p247 :001 > if true ; puts "TRUE" ; else puts "FALSE" ; end
TRUE

2.0.0p247 :002 > if false ; puts "TRUE" ; else puts "FALSE" ; end
FALSE

2.0.0p247 :003 > if nil ; puts "TRUE" ; else puts "FALSE" ; end
FALSE

2.0.0p247 :004 > if 0 ; puts "TRUE" ; else puts "FALSE" ; end
TRUE

2.0.0p247 :005 > if [] ; puts "TRUE" ; else puts "FALSE" ; end
TRUE

2.0.0p247 :006 > if {} ; puts "TRUE" ; else puts "FALSE" ; end
TRUE

2.0.0p247 :007 > if "" ; puts "TRUE" ; else puts "FALSE" ; end
(irb):616: warning: string literal in condition
TRUE

risposte:

16 per risposta № 1

false e nil sono gli unici:

http://www.ruby-doc.org/core-2.1.1/FalseClass.html

Rails fornisce present? che include anche stringhe vuote e array vuoti: http://api.rubyonrails.org/classes/Object.html#method-i-present-3F


6 per risposta № 2

Li hai appena trovati tutti

In Ruby, false e nil sono "falsy", mentre tutti gli altri valori sono "truthy"

come ha detto Yehuda Katz nella sua post sul blog nel 2009


2 per risposta № 3

Il solo false-sono valori in Ruby false e nil, come attesta il libro "The Ruby Programming Language", di David Flanagan e Yukihiro Matsumoto (il Matz):

I predicati restituiscono in genere uno dei valori booleani true o false, ma questo non è richiesto, come qualsiasi valore diverso da false o nil funziona come true quando è richiesto un valore booleano. (Il Numeric metodo nonzero?, ad esempio, restituisce nil se il numero su cui viene invocato è zero e restituisce semplicemente il numero in caso contrario.)

(sottolineatura mia)

Questa citazione è disponibile su pagina 180 del libro.


1 per risposta № 4

Posso solo essere d'accordo nil e false sono davvero gli unici due valori che valutano falso in Ruby. Volevo solo indicare un'altra utile risorsa:

True and False vs. "Truthy" e "Falsey" (o "Falsy") in Ruby, Python e JavaScript