APIdock / Ruby
/
method

insert

ruby latest stable - Class: Array
insert(*args)
public

Inserts the given values before the element with the given index .

Negative indices count backwards from the end of the array, where -1 is the last element. If a negative index is used, the given values will be inserted after that element, so using an index of -1 will insert the values at the end of the array.

a = %w{ a b c d }
a.insert (2, 99) #=> ["a", "b", 99, "c", "d"]
a.insert (-2, 1, 2, 3) #=> ["a", "b", 99, "c", 1, 2, 3, "d"]
static VALUE
rb_ary_insert(int argc, VALUE *argv, VALUE ary)
{
 long pos;
 rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS);
 rb_ary_modify_check(ary);
 pos = NUM2LONG(argv[0]);
 if (argc == 1) return ary;
 if (pos == -1) {
 pos = RARRAY_LEN(ary);
 }
 else if (pos < 0) {
 long minpos = -RARRAY_LEN(ary) - 1;
 if (pos < minpos) {
 rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",
 pos, minpos);
 }
 pos++;
 }
 rb_ary_splice(ary, pos, 0, argv + 1, argc - 1);
 return ary;
}

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