I was just prepping a code sample for somebody out in the big wide
world, and doing that always makes me review my code, and I noticed I
was using Array#push a lot instead of << (I think that's Array#<<
actually?).
So, kind of a basic question, is << basically just idiomatic Ruby for
push? (This was a Rails project with a lot of custom JavaScript and I
think I just got in that particular mindset.)
···
--
Giles Bowkett
http://www.gilesgoatboy.org
also
<< : generally returns self to allow chaining
push : generally returns the elements pushed
-a
···
On Wed, 29 Nov 2006 dblack@wobblini.net wrote:
Hi --
On Wed, 29 Nov 2006, Giles Bowkett wrote:
I was just prepping a code sample for somebody out in the big wide
world, and doing that always makes me review my code, and I noticed I
was using Array#push a lot instead of << (I think that's Array#<<
actually?).
So, kind of a basic question, is << basically just idiomatic Ruby for
push? (This was a Rails project with a lot of custom JavaScript and I
think I just got in that particular mindset.)
I *think* the only difference is that push can take more than one
argument.
--
if you want others to be happy, practice compassion.
if you want to be happy, practice compassion. -- the dalai lama
>>> I was just prepping a code sample for somebody out in the big wide
>>> world, and doing that always makes me review my code, and I noticed I
>>> was using Array#push a lot instead of << (I think that's Array#<<
>>> actually?).
>>>
>>> So, kind of a basic question, is << basically just idiomatic Ruby for
>>> push? (This was a Rails project with a lot of custom JavaScript and I
>>> think I just got in that particular mindset.)
>>
>> I *think* the only difference is that push can take more than one
>> argument.
>
> also
>
> << : generally returns self to allow chaining
>
> push : generally returns the elements pushed
I'm not seeing that:
irb(main):003:0> [1,2,3].push(4,5)
=> [1, 2, 3, 4, 5]
irb(main):004:0> [1,2,3] << 4
=> [1, 2, 3, 4]
ah, that explains something. I couldn't open up my old code without
fiddling with it a bit, but changing << to push() across the board
killed something in the functionality. I didn't have time to find out
exactly what, but I think it's the only-one-arg thing that did it.
···
--
Giles Bowkett
http://www.gilesgoatboy.org