ruby数组小问题

a=[1,2,3]
=> [1, 2, 3]
b=a
=> [1, 2, 3]
b.delete(1)
=> 1
b
=> [2, 3]
a
=> [2, 3]

这怎么回事?我想保存a作为副本,为什么操作b后,a的值也变了
[b]问题补充:[/b]
这个现象我已经观测到了,我想问问有没什么方法,保存数组副本,谢谢!
除了这个比较弱的方法
a='1,2,3'
b=a.split(',')
b.delete(1)

a
=> '1,2,3'
b
=> [2,3]

PS:通过赋值数组元素到达值拷贝。

[quote]这怎么回事?我想保存a作为副本,为什么操作b后,a的值也变了[/quote]
因为将b=a,实际上是将b和a指向同一个对象,操作b就是操作a。如果只是进行值拷贝,相当于Java里面的deep copy,要采用其它的办法。

[quote]这个现象我已经观测到了,我想问问有没什么方法,保存数组副本,谢谢!
除了这个比较弱的方法
a='1,2,3'
b=a.split(',')
b.delete(1)

a
=> '1,2,3'
b
=> [2,3][/quote]
a=[1,2,3]
b=[a[0],a[1],a[2]]
b.delete(1)

a
=>[1,2,3]
b
=>[2,3]