加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 为什么在一个数组上插入/删除也修改另一个?

发布时间:2020-12-17 03:40:06 所属栏目:百科 来源:网络整理
导读:我有一个关于对数组使用insert和delete_at的问题.如果我将一个元素插入一个数组(arry)然后将该值存储在另一个变量(temp)中,为什么在arry上使用delete_at之后变量temp会发生变化?有没有办法永久存储插入对象的数组值? 以下是一些示例代码: arry = [0,1,3,4
我有一个关于对数组使用insert和delete_at的问题.如果我将一个元素插入一个数组(arry)然后将该值存储在另一个变量(temp)中,为什么在arry上使用delete_at之后变量temp会发生变化?有没有办法永久存储插入对象的数组值?

以下是一些示例代码:

arry = [0,1,3,4]
# => [0,4]
arry.insert(1,5)
# => [0,5,4]
temp = arry
# => [0,4]
arry.delete_at(1)
# => 5
temp
# => [0,4]

解决方法

将数组分配给新变量时,不会复制数组本身,只会设置对该数组的引用.如果要将原始数组保存到新变量,则需要克隆该数组
你可以通过 dup做到这一点.

temp = arry.dup

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读