deep clone

D

David Garamond

I need to produce deep copies of an object structure (the elements will
only be hashes, arrays, symbols, strings, numbers, true/false, nils; and
not "complex" stuffs like File object or database connection handles).
Will this do fine?

def deep_clone(obj)
Marshal.load(Marshal.dump(obj))
end

Any gotchas I should know?
 
J

Joel VanderWerf

David said:
I need to produce deep copies of an object structure (the elements will
only be hashes, arrays, symbols, strings, numbers, true/false, nils; and
not "complex" stuffs like File object or database connection handles).
Will this do fine?

def deep_clone(obj)
Marshal.load(Marshal.dump(obj))
end

Any gotchas I should know?

That approach seems to be the standard answer. See for example:

http://ruby-talk.org/3534

All the datatypes you mention can be handled by Marshal.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top