私は次のようなハッシュを持っています:
h = {'name' => 'sayuj',
'age' => 22,
'project' => {'project_name' => 'abc',
'duration' => 'prq'}}
このハッシュの複製が必要です。変更は元のハッシュに影響を与えるべきではありません。
試してみると、
d = h.dup # or d = h.clone
d['name'] = 'sayuj1'
d['project']['duration'] = 'xyz'
p d #=> {"name"=>"sayuj1", "project"=>{"duration"=>"xyz", "project_name"=>"abc"}, "age"=>22}
p h #=> {"name"=>"sayuj", "project"=>{"duration"=>"xyz", "project_name"=>"abc"}, "age"=>22}
ここでは、が別のハッシュ オブジェクトであるproject['duration']
ため、元のハッシュで is が変更されていることがわかります。project
duped
ハッシュをまたはcloned
再帰的にしたい。どうすればこれを達成できますか?