我有一个关于对数组使用 insert
和 delete_at
的问题。如果我将一个元素插入数组 (arry
),然后将该值存储在不同的变量 (temp
) 中,为什么变量 temp
在 arry
上使用 delete_at
后会发生变化吗?有没有办法用插入对象永久保存数组的值?
下面是一些示例代码:
arry = [0,1,3,4]
# => [0, 1, 3, 4]
arry.insert(1,5)
# => [0, 5, 1, 3, 4]
temp = arry
# => [0, 5, 1, 3, 4]
arry.delete_at(1)
# => 5
temp
# => [0, 1, 3, 4]
最佳答案
当您将数组分配给新变量时,不会复制数组本身,而只会设置对该数组的引用。如果要将原始数组保存到新变量,则需要克隆数组 您可以通过 dup 来完成.
temp = arry.dup
关于ruby - 为什么在一个数组上插入/删除也会修改另一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17138062/