Hi,
In message "[ruby-talk:01384] Re: Say Hi"
on 00/02/15, mengx / nielsenmedia.com <mengx / nielsenmedia.com> writes:
|My suggestion was to try to find a more comfortable method name (to me, and
|maybe also to some people) for
|"unshift", (while shift is from shell, unshift is Perlitical, to my knowledge).
|Since "slice" methods are going to be added, the ambiguity could be less
|for using pop(index=-1) and push(obj,index=-1) once documented,
|(Or "insert(index , obj) may look better?)
I think `insert' may be a good choice.
What do you guys think about adding this method to Array?
And possibly `insert_after' to make emulating `push' easier.
[1,2,3].insert(0,5) #=> [5,1,2,3]
[1,2,3].insert(-1,5) #=> [1,2,5,3]
[1,2,3].insert_after(0,5) #=> [1,5,2,3]
[1,2,3].insert_after(-1,5) #=> [1,2,3,5]
But this behavior of `insert' is easily accomplished by []=, e.g.
[1,2,3][0,0] = 5 #=> [5,1,2,3]
[1,2,3][-1,0] = 5 #=> [1,2,5,3]
`insert_after' is not as easy as `insert'.
[1,2,3][0+1,0] = 5 #=> [1,5,2,3]
a = [1,2,3]
a[a.size,0] = 5 #=> [1,2,3,5]
In addition, should inserting array be treated specially? E.g.
[1,2,3].insert(0,[5,6]) #=> [[5,6],1,2,3] or [5,6,1,2,3]
matz.