我有一个数组和一个整数:

ary = [2, 5, 4]
num = 6

如果我定义了一个名为this的新数组,它与ary相同:
this = ary

我在this中添加了一个数字:
this << num

当我检查阵列时,它们都是一样的:
p this
#=>[2, 5, 4, 6]
p ary
#=>[2, 5, 4, 6]

我只想在this中添加一个数字,而ary应该仍然是:
ary = [2, 5, 4]

为什么会发生这种情况,我如何才能防止ary也将数字添加到其中?

最佳答案

arythis都是对同一个数组实例的引用,当使用其他变量引用数组时,操作其中一个实例的副作用将显示出来。
如果不需要任何副作用,请使用ary.dup复制数组。

关于arrays - 如何分隔重复的数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34496023/

10-12 07:39