Method: Hash#any?
- Defined in:
- hash.c
#any? ⇒ Boolean #any?(object) ⇒ Boolean #any? {|key, value| ... } ⇒ Boolean
Returns true if any element satisfies a given criterion; false otherwise.
If self has no element, returns false and argument or block are not used.
With no argument and no block, returns true if self is non-empty; false if empty.
With argument object and no block, returns true if for any key key h.assoc(key) == object:
h = {foo: 0, bar: 1, baz: 2}
h.any?([:bar, 1]) # => true
h.any?([:bar, 0]) # => false
h.any?([:baz, 1]) # => false
With no argument and a block, calls the block with each key-value pair; returns true if the block returns any truthy value, false otherwise:
h = {foo: 0, bar: 1, baz: 2}
h.any? {|key, value| value < 3 } # => true
h.any? {|key, value| value > 3 } # => false
Related: Enumerable#any?
4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 |
# File 'hash.c', line 4545 static VALUE rb_hash_any_p(int argc, VALUE *argv, VALUE hash) { VALUE args[2]; args[0] = Qfalse; rb_check_arity(argc, 0, 1); if (RHASH_EMPTY_P(hash)) return Qfalse; if (argc) { if (rb_block_given_p()) { rb_warn("given block not used"); } args[1] = argv[0]; rb_hash_foreach(hash, any_p_i_pattern, (VALUE)args); } else { if (!rb_block_given_p()) { /* yields pairs, never false */ return Qtrue; } if (rb_block_pair_yield_optimizable()) rb_hash_foreach(hash, any_p_i_fast, (VALUE)args); else rb_hash_foreach(hash, any_p_i, (VALUE)args); } return args[0]; } |