我想要在生产上获得一个对象,然后将一个确切的副本(复制其内容)复制到另一个相同类型的对象。Ruby中数组的深层副本
比方说,你有
tt
只要你想为复制对象过去,tt2
复制的第一个对象:我试图从Ruby控制台3种方式其中没有他们的努力这样做。我尝试的第一个方法是克隆阵列tt2.patients = tt.urls.patients tt2.doctors = tt.segments.doctors tt2.hospitals = tt.pixels.hospitals
第二种方法我试图被复制阵列这实际上是相同的克隆阵列:
tt2.patients = tt.patients.dup tt2.doctors = tt.doctors.dup tt2.hospitals = tt.hospitals.dup
第三种方法我试图被marhsalling。
tt2.patients = Marshal.load(Marshal.dump(tt.patients)) tt2.doctors = Marshal.load(Marshal.dump(tt.doctors)) tt2.hospitals = Marshal.load(Marshal.dump(tt.hospitals))
无上述作品深度复制从一个阵列到另一个。在单独尝试每种方法之后,第一个对象(tt
)的所有内容都将被取消(患者,医生和医院不在)。你有任何其他想法复制一个对象的内容到另一个?谢谢。
你只是在第一个例子中设置你的变量。请改用tt2.patients = tt.patiens.clone。 – three 2011-12-22 18:44:14