ruby“?” et“?” méthodes de comportement sur des Tableaux Vides et les tables de hachage
Tout d'abord, j'ai trouvé deux articles utiles dans les documentations à propos de ces méthodes:
- http://www.ruby-doc.org/core-1.9.3/Enumerable.html
- http://www.globalnerdy.com/2008/01/29/enumerating-rubys-enumerable-module-part-1-all-and-any/
tous?: Passe chaque élément de la collection pour le bloc donné. La méthode renvoie true si le bloc ne retourne false ou nul.
tout?: Passe chaque élément de la collection pour le bloc donné. La méthode renvoie true si le bloc est jamais retourne une valeur autre que la valeur false ou nul.
Mais en cas de vide de tableaux et hachages j'ai eu:
irb(main):004:0> [nil, "car", "bus"].all?
=> false
irb(main):005:0> ["nil", "car", "bus"].all?
=> true
irb(main):006:0> [].all?
=> true
irb(main):007:0> ["nil", "car", "bus"].any?
=> true
irb(main):008:0> [nil, "car", "bus"].any?
=> true
irb(main):009:0> [nil].any?
=> false
irb(main):010:0> [].any?
=> false
Quelqu'un peut-il m'expliquer pourquoi des tableaux vides me donner false
dans le cas de la any?
méthode et true
en cas de all?
?
En termes mathématiques:
any?
est un pli de logique OU dont l'identité de l'élément est false
. D'autre part all?
est une fois de logique ET de l', dont l'identité élément est true
. en.wikipedia.org/wiki/Identity_elementOriginalL'auteur y4roslav | 2012-11-06
Vous devez vous connecter pour publier un commentaire.
Donc, depuis que le bloc n'est jamais appelé, bien sûr, il ne retourne false ou nul, donc
all
renvoie la valeur true.Il en va de même pour
any
:Depuis le bloc n'est jamais appelée, elle ne renvoie jamais à une valeur autre que la valeur false ou nul, donc
any
renvoie la valeur false.OriginalL'auteur Kim Stebel