Logan Capaldo wrote:
> On 8/29/07, Todd Benson <caduceass / gmail.com> wrote:
>> On 8/29/07, Ari Brown <ari / aribrown.com> wrote:
>>> I can't remember who asked this a while ago, but while I was
>>> stumbling through my Programming Ruby book,  I found a nice method in
>>> array that will instantly do the trick: Array#concat
>>>
>>>
>>> a = [1, 2]
>>> b = [3, 4]
>>> a.concat(b) #=> [1, 2, 3, 4]
>> There's also a+=b.  I'm not sure if there's a difference.
>>
> There is. a += b --> a = a + b, and a + b will always allocate a new
> array. a.concat(b) will try to use any space already allocated in a,
> and only if there is not enough will it regrow a.

And note that concat has side effects:

irb(main):001:0> a = [1,2]
=> [1, 2]
irb(main):002:0> b = [3,4]
=> [3, 4]
irb(main):003:0> c = a
=> [1, 2]
irb(main):004:0> a += b
=> [1, 2, 3, 4]
irb(main):005:0> c
=> [1, 2]
irb(main):006:0> a = [1,2]
=> [1, 2]
irb(main):007:0> b = [3,4]
=> [3, 4]
irb(main):008:0> c = a
=> [1, 2]
irb(main):009:0> a.concat(b)
=> [1, 2, 3, 4]
irb(main):010:0> c
=> [1, 2, 3, 4]


-- 
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407