我有一个对象ID为19475160的哈希,我需要克隆我的哈希,我该怎么做呢?我发现的每一篇谷歌搜索和文章都指向我的rails解决方案,但我找不到任何常规的ruby解决方案。
答案 0 :(得分:1)
这将执行对象的浅表副本:
obj2 = obj.clone
这将执行对象的深层复制:
obj2 = Marshal.load(Marshal.dump(obj))
答案 1 :(得分:0)
您可以使用dup
。
h = {a:1}
h2 = h.dup
h[:a] = 2
h2
=> {:a=>1}
h
和h2
有不同的object_id。
生成obj的浅表副本 - 复制obj的实例变量,但不复制它们引用的对象。