arr = ["red","green","yellow"]
arr2 = arr.clone
arr2[0].replace("blue")
puts arr.inspect
puts arr2.inspect
дает:
["blue", "green", "yellow"]
["blue", "green", "yellow"]
Есть ли способ сделать глубокую копию массива строк, кроме использования маршала, поскольку я понимаю, что это взлом.
Я мог бы сделать:
arr2 = []
arr.each do |e|
arr2 << e.clone
end
но он не кажется очень элегантным или эффективным.
Спасибо