首先,我在有关这些方法的文档中找到了两篇有用的文章:
- 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/
all?:将集合的每个元素传递给给定的块。如果块从不返回 false 或 nil,则该方法返回 true。
any?:将集合的每个元素传递给给定的块。如果块曾经返回 false 或 nil 以外的值,则该方法返回 true。
但如果是空数组和哈希,我得到:
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
有人可以向我解释为什么空数组false
在any?
方法和true
情况下给我all?
吗?