清除数组而不破坏引用

时间:2017-01-28 21:25:16

标签: ruby

我想在声明哈希值后清除数组并允许哈希值保持不变。 这甚至可能吗?

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

这是清除阵列后的预期结果。

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

1 个答案:

答案 0 :(得分:5)

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

如果array只包含简单对象(如整数),则可以使用dup方法。否则你需要一份深层复制品。