我承认我是一个红宝石新手(现在正在编写rake脚本)。在大多数语言中,复制构造函数很容易找到。半小时的搜索未在红宝石中找到它。我想创建哈希的副本,以便可以修改它而不影响原始实例。
某些预期无法正常工作的方法:
h0 = { "John"=>"Adams","Thomas"=>"Jefferson","Johny"=>"Appleseed"}
h1=Hash.new(h0)
h2=h1.to_hash
同时,我采取了这种优雅的解决方法
def copyhash(inputhash)
h = Hash.new
inputhash.each do |pair|
h.store(pair[0], pair[1])
end
return h
end
Hash
对象,则提供的答案很好。如果要处理来自不受控制的地方的类哈希对象,则应考虑是否要复制与哈希相关的单例类。见stackoverflow.com/questions/10183370/...