【发布时间】:2016-06-25 07:59:47
【问题描述】:
假设我声明数组如下:
array1 = [1,2,3,4,5]
array2 = array1
两个数组的对象ID相同:
array1.object_id = 118945940
array2.object_id = 118945940
当我按如下方式在数组中插入一个元素时,
array1 << 10
结果是
array1 = [1, 2, 3, 4, 5, 10]
array2 = [1, 2, 3, 4, 5, 10]
但是当我将新数组添加到数组array1中时,
array1 = array1 + [11,12]
array1 = [1,2,3,4,5,10,11,12]
array2 = [1,2,3,4,5,10]
两个数组的对象 ID 都发生了变化。
<< 是如何工作的?
【问题讨论】:
标签: arrays ruby immutability