ruby ' s "?" und "?" - Methoden Verhalten auf Leere Arrays und Hashes

Zunächst fand ich zwei nützliche Artikel in Dokumentationen über diese Methoden:

alle?: Übergibt jedes element der Kollektion um den block. Die Methode gibt true zurück, wenn der block nie zurückgibt, false oder nil.

?: Übergibt jedes element der Kollektion um den block. Die Methode gibt true zurück, wenn der block immer wieder einen anderen Wert als false oder nil ist.

Aber im Falle eines leeren arrays und hashes, die ich bekam:

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

Kann jemand mir erklären, warum leere arrays geben Sie mir false im Falle der any? Methode und true im Falle von all??

In mathematischen Begriffen: any? ist eine Falte von logischen ODER deren Identität element ist false. Auf der anderen Seite all? ist eine Falte von logischen UND deren Identität element ist true. en.wikipedia.org/wiki/Identity_element

InformationsquelleAutor y4roslav | 2012-11-06

Schreibe einen Kommentar