我有一个数组和一个整数:
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
也将数字添加到其中? 最佳答案
ary
和this
都是对同一个数组实例的引用,当使用其他变量引用数组时,操作其中一个实例的副作用将显示出来。
如果不需要任何副作用,请使用ary.dup
复制数组。
关于arrays - 如何分隔重复的数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34496023/