这是我的挑战。
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
已更改,我该如何解决?
答案 0 :(得分:4)
b
引用的数组实例和推送到a
的数组实例都是相同的实例 - 因此,修改一个实例也会导致在其他实例中看到更改。
您可以尝试:
a << b.dup
以便将b
的副本推送到a
。