Дублирование массива строк Ruby

arr = ["red","green","yellow"]

arr2 = arr.clone
arr2[0].replace("blue")

puts arr.inspect
puts arr2.inspect

производит:

["blue", "green", "yellow"]
["blue", "green", "yellow"]

Есть ли в любом случае сделать глубокую копию массива строк, кроме использования Marshal, как я понимаю, это взломать.

Я мог бы сделать:

arr2 = []
arr.each do |e|
  arr2 << e.clone
end

но это не кажется очень элегантным или эффективным.

Спасибо

Ответы на вопрос(6)

Ваш ответ на вопрос