Feature #9948
closedSafely insert an object into an array
Description
When I insert an object using Array#insert(index, object)
method (or Array#[index]= object
), it happened sometimes that I mistakenly passed index
that is too big, and too often in such cases was the bug very difficult to detect because in such case, insert
will silently insert nil
to fill up the empty slots:
[:foo, :bar].insert(4, :baz) # => [:foo, :bar, nil, nil, :baz]
On the other hand, when the index is too small (negative), index
raises an index error. I wish that an error were raised when the index is too big (when index
is greater than length
of self
), but it is perhaps a bad idea to change the feature of insert
by now. So I propose that a new method being added, something like Array#safely_insert
, which works the same as insert
, except that when index
is larger than the size of the array, it should raise:
Index Error: index #{indexs} too large for array; maximum: #{length}