I had a list
a = [1, 2, 3]
when I did
a.insert(100, 100)
[1, 2, 3, 100]
as list was originally of size 4 and I was trying to insert value at
index
100 , it behaved like append instead of throwing any errors as I was
trying
to insert in an index that did not even existed .
Should it not throw
IndexError: list assignment index out of range
exception as it throws when I attempt doing
a[100] = 100
Question : 1. Any idea Why has it been designed to silently handle this
instead of informing the user with an exception ?
Personal Opinion : Lets see how other dynamic languages behave in such a
situation : Ruby :
> a = [1, 2]
> a[100] = 100
> a
=> [1, 2, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 100]
The way ruby handles this is pretty clear and sounds meaningful (and
this is
how I expected to behave and it behaved as per my expectation) at
least to
me . So what I felt was either it should throw exception or do the
way ruby
handles it .
Is ruby way of handling not the obvious way ?
I even raised it in stackoverflow
http://stackoverflow.com/questions/25840177/list-insert-at-index-that-is-well-out-of-range-behaves-like-append
and got some responses .