数组元素已修改

时间:2016-01-13 07:08:50

标签: ruby

这是我的挑战。

a = ["1", "2"]
b = ["3", "4"]
a << b
a # => ["1","2",["3","4"]] 

如果我修改b[0]的值,a也会更改。

b[0] = "5"
a # => ["1","2",["5","4"]]

b推入a后,b被修改。为什么a已更改,我该如何解决?

1 个答案:

答案 0 :(得分:4)

b引用的数组实例和推送到a的数组实例都是相同的实例 - 因此,修改一个实例也会导致在其他实例中看到更改。

您可以尝试:

a << b.dup

以便将b的副本推送到a