APIdock / Ruby
/
method

dig

ruby latest stable - Class: Hash
dig(*args)
public

Extracts the nested value specified by the sequence of key objects by calling dig at each step, returning nil if any intermediate step is nil.

h = { foo: {bar: {baz: 1}}}
h.dig (:foo, :bar, :baz) #=> 1
h.dig (:foo, :zot, :xyz) #=> nil
g = { foo: [10, 11, 12] }
g.dig (:foo, 1) #=> 11
g.dig (:foo, 1, 0) #=> TypeError: Integer does not have #dig method
g.dig (:foo, :bar) #=> TypeError: no implicit conversion of Symbol into Integer
VALUE
rb_hash_dig(int argc, VALUE *argv, VALUE self)
{
 rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);
 self = rb_hash_aref(self, *argv);
 if (!--argc) return self;
 ++argv;
 return rb_obj_dig(argc, argv, self, Qnil);
}

AltStyle によって変換されたページ (->オリジナル) /