On Aug 30, 1:50 am, Joel VanderWerf <vj... / path.berkeley.edu> wrote: > Logan Capaldo wrote: > > On 8/29/07, Todd Benson <caduce... / gmail.com> wrote: > >> On 8/29/07, Ari Brown <a... / 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 You can also use OR to uniquely concat those arrays. irb(main):003:0> [1,2] | [3,4] => [1, 2, 3, 4] irb(main):004:0> [1,2] | [2,3,4] => [1, 2, 3, 4] irb(main):005:0>