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:

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_element

OriginalL'auteur y4roslav | 2012-11-06