【发布时间】:2021-09-01 12:52:10
【问题描述】:
我想复制一个数组,在原地修改副本,而不影响原来的。此代码失败
a = [
'462664',
'669722',
'297288',
'796928',
'584497',
'357431'
]
b = a.clone
b.object_id == a.object_id # => false
a[1][2] = 'X'
a[1] #66X722
b[1] #66X722
副本应该与对象不同。为什么它只是一个参考?
【问题讨论】:
-
如果您使用检查方法,它们是两个不同的对象,它应该显示不同的内存分配值。克隆会复制变量,但不会复制它们引用的对象。