我需要制作一个对象的深层副本。 我知道做出深层复制的唯一方法 一个对象具有以下内容:
Marshal.load(Marshal.dump(my_object))
令我沮丧的是,我发现如果有一些元素
深度复制的对象是proc对象
然后我得到一个错误,因为proc对象没有
有一个dump方法,不能深入复制那个
方式。
如何制作对象的深层副本 在他们中划过?
答案 0 :(得分:1)
使用clone
在Ruby中进行深层复制应该可以解决问题。 (编组不适用于某些对象......如果Procs属于该类别,则有意义。)
clone
是一种约定深度复制的约定,即使Ruby中不支持深层复制也是如此。但是,an answer on SO to a similar question具有clone