Class: Array
- Inherits:
-
Object
- Object
- Array
- Defined in:
- ext/backport_dig/backport_dig.c
Instance Method Summary collapse
-
#dig(idx, ...) ⇒ Object
Extracts the nested value specified by the sequence of idx objects by calling
digat each step, returningnilif any intermediate step isnil.
Instance Method Details
#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) #=> TypeError: Fixnum does not have #dig method
[42, {foo: :bar}].dig(1, :foo) #=> :bar
114 115 116 117 118 119 120 121 122 |
# File 'ext/backport_dig/backport_dig.c', line 114 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); } |