I’m failing at something really basic: copying an array and its
contents, so that I can modify the copy without modifying the original.
Here’s an example:
irb(main):006:0> a = [1, 2]
=> [1, 2]
irb(main):007:0> b = a
=> [1, 2]
irb(main):008:0> b.delete(1)
=> 1
irb(main):009:0> b
=> [2]
irb(main):010:0> a
=> [2]
I guess the problem is that arrays are called by name not by value, so
that ‘b’ copy points to the same adress in memory as ‘a’. How can I
create an independent copy of ‘a’?
Thank you both, that’s exactly what I’m looking for!
Just note that #dup and #clone do a shallow copy, so if you modify
objects in the copy this change will also be seen via the original
Array. Depending on what you do #map might be more appropriate.
Kind regards
robert
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.