我想将一个哈希值复制到一个新的哈希值,稍后再使用它。前一个将改变,我不想使用改变的那个。
我做了:
findInterval(x, interval.vector + 1L, all.inside = TRUE)
## [1] 1 1 2 2 3 4
当hash_2 = Hash.new()
hash_2 = hash_1.clone
发生变化时,hash_1
也会发生变化,我无法弄清楚我做错了什么。
答案 0 :(得分:1)
你可以使用' Marshal'深刻复制。
h1 = {:key_1 => {:sub_1 => "sub_1", :sub_2 => "sub_2"}}
h2 = Marshal.load(Marshal.dump(h1))
h2[:key_1][:sub_1] = "SUB_1"
h2[:key_1].delete(:sub_2)
p h1
# => {:key_1=>{:sub_1=>"sub_1", :sub_2=>"sub_2"}}
p h2
# => {:key_1=>{:sub_1=>"SUB_1"}}