まず最初に、これらの方法に関するドキュメントで2つの有用な記事を見つけました。
- 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?