私は少しルビーの初心者であることを認めます(今は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/…を