ruby数组拷贝问题

直接用 = 拷贝的话,拷贝的对象发生变化后原拷贝对象也会发生变化。用Array.new则没有这个问题。

 

http://ggse.iteye.com/blog/321050

 

值拷贝实例: 
>> a=[1,2] 
=> [1, 2] 
>> b=Array.new(a) 
=> [1, 2] 
>> b.delete(1) 
=> 1 
>> b 
=> [2] 
>> a 
=> [1, 2] 

指针拷贝实例: 
>> a=[1,2] 
=> [1, 2] 
>> b=a 
=> [1, 2] 
>> b.delete(1) 
=> 1 
>> b 
=> [2] 
>> a 
=> [2] 


ruby中数组用=号赋值是指针拷贝,需要注意一下,而不是像c或其他语言一样=默认是值拷贝。

posted on 2017-08-14 11:25  guolongnv  阅读(316)  评论(0)    收藏  举报