Method: Array#dig
- Defined in:
- array.c
#dig(idx, ...) ⇒ Object
Extracts the nested value specified by the sequence of idx objects by calling dig at each step, returning nil if any intermediate step is nil.
a = [[1, [2, 3]]]
a.dig(0, 1, 1) #=> 3
a.dig(1, 2, 3) #=> nil
a.dig(0, 0, 0) #=> NoMethodError, undefined method `dig' for 1:Fixnum
[42, {foo: :bar}].dig(1, :foo) #=> :bar
5550 5551 5552 5553 5554 5555 5556 5557 5558 |
# File 'array.c', line 5550 VALUE rb_ary_dig(int argc, VALUE *argv, VALUE self) { rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS); self = rb_ary_at(self, *argv); if (!--argc) return self; ++argv; return rb_obj_dig(argc, argv, self, Qnil); } |