この記事は、以下のドキュメントを改変(自分なりに整理)して利用しています。
class Array (Ruby 3.0.0 リファレンスマニュアル)
インスタンスメソッド
all? -> bool
all? {|item| ... } -> bool
all?(pattern) -> bool
- すべての要素が真である場合、trueを返す
- 偽である要素があればただちにfalseを返す
- ブロックを伴う場合、各要素に対してブロックを評価し、すべての結果が真である場合にtrueを返す
- ブロックが偽を返した時点で、ただちにfalseを返す
- patternを指定した場合、ブロックの代わりに各要素に対してpattern === itemを評価する
irb(main):001:0> [].all? => true irb(main):002:0> [1].all? => true irb(main):003:0> [nil].all? => false # 空配列のパターンは覚えておきたい
irb(main):001:0> [].all? {|v| v > 100 } => true # 覚えておきたい
irb(main):001:0> [1, 2, 3].all? {|v| v > 0 } => true
irb(main):001:0> [1, 2, 3].all? {|v| v > 1 } => false
irb(main):001:0> arr = ['a', 'b', 'c'] => ["a", "b", "c"] irb(main):002:1> arr.all? {|v| v.capitalize!; v == 'A' } => false irb(main):003:0> arr => ["A", "B", "c"] # cが大文字になっていない # 偽である要素があればただちにfalseを返すことがわかる(bを大文字にして評価して偽)
irb(main):001:0> %w[aa ab bb].all?(/a/) => false
irb(main):001:0> [nil, true, 99].all?(Integer) => false # patternにこういう指定もできるのか
any? -> bool
any? {|item| ... } -> bool
any?(pattern) -> bool
- すべての要素が偽である場合、falseを返す
- 真である要素があればただちにtrueを返す
- ブロックを伴う場合、各要素に対してブロックを評価し、すべての結果が偽である場合にtrueを返す
- ブロックが真を返した時点で、ただちにtrueを返す
- patternを指定した場合、ブロックの代わりに各要素に対してpattern === itemを評価する
irb(main):001:0> [].any? => false irb(main):002:0> [1].any? => true irb(main):003:0> [nil].any? => false # 空配列のパターンは覚えておきたい
irb(main):001:0> [].any? {|v| v > 100} => false # 覚えておきたい
irb(main):001:1> [1, 2, 3].any? {|v| v > 4} => false
irb(main):001:0> [1, 2, 3].any? {|v| v > 2} => true
irb(main):001:0> arr = ['a', 'b', 'c'] => ["a", "b", "c"] irb(main):002:0> arr.any? {|v| v.capitalize!; v == 'B' } => true irb(main):003:0> arr => ["A", "B", "c"] # cが大文字になっていない # 真である要素があればただちにfalseを返すことがわかる(bを大文字にして評価して真)
irb(main):001:0> %w[aa ab ac].any?(/a/) => true
irb(main):001:0> [nil, true, 99].any?(Integer) => true # patternにこういう指定もできるのか