2017-01-28 64 views
0

我想在聲明散列值之後清除數組,並允許散列值保持不變。 這甚至可能嗎?清除數組而不破壞引用

hash = {} 
number= "number" 
array = [1,2,3,4,5,6] 
hash[number]=array 

這是清除數組後的預期結果。

{"number"=>[1, 2, 3, 4, 5,6]} 
+0

我想清除數組,這樣我就可以在分配給散列後添加新元素。 – olafsadventures

回答

5
hash[number] = array.dup 
array.clear 
hash 
=> {"number"=>[1, 2, 3, 4, 5, 6]} 

如果您array只包含簡單對象(如整數是),你可以使用dup方法。否則,你需要一個深層複製。

+0

Yippee!這工作。 – olafsadventures

+0

即使有其他對象,'dup'也是最好的選擇,所以人們不可能想要克隆數組中的對象。 – akuhn