/ / Qu'est-ce qui est faux en Ruby? - rubis

Qu'est-ce qui est faux en Ruby? - rubis

false et nil évaluer à faux dans Ruby. Rien d'autre? Veuillez fournir des liens vers des références officielles / faisant autorité.

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

Réponses:

16 pour la réponse № 1

false et nil sont les seuls:

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

Rails fournit present? qui inclut également des chaînes vides et des tableaux vides: http://api.rubyonrails.org/classes/Object.html#method-i-present-3F


6 pour la réponse № 2

Vous venez de les trouver tous

En Ruby, faux et rien sont «fausseté», alors que toutes les autres valeurs sont «vérité»

comme Yehuda Katz a mentionné dans son article de blog en 2009


2 pour la réponse № 3

Le seul false-y valeurs en Ruby sont false et nil, comme en témoigne le livre "The Ruby Programming Language" de David Flanagan et Yukihiro Matsumoto (la Matz):

Les prédicats renvoient généralement l'une des valeurs booléennes true ou false, mais ce n’est pas obligatoire, toute valeur autre que false ou nil fonctionne comme true lorsqu'une valeur booléenne est requise. (Le Numeric méthode nonzero?, par exemple, renvoie nil si le numéro sur lequel il est invoqué est égal à zéro et renvoie le nombre sinon

(c'est moi qui souligne)

Cette citation peut être trouvée sur page 180 du livre.


1 pour la réponse № 4

Je ne peux que convenir que nil et false sont en effet les deux seules valeurs, qui évaluent à faux en rubis. Je voulais juste pointer vers une autre ressource utile:

Vrai et Faux contre "Truthy" et "Falsey" (ou "Falsy") en Ruby, Python et JavaScript