Quería obtener un objeto en producción y hacer una réplica exacta (copiar sobre su contenido) a otro objeto del mismo tipo. He intentado hacer esto en 3 maneras de consola de rubí, que ninguno de ellos funcionó:Copia profunda de matrices en Ruby
Digamos que usted tiene la
tt
como el primer objeto que desea copiar una ytt2
como el objeto de réplica. El primer enfoque Probé es la clonación de la matriztt2.patients = tt.urls.patients tt2.doctors = tt.segments.doctors tt2.hospitals = tt.pixels.hospitals
segundo enfoque que pretende es duplicar la matriz que en realidad es la misma que la clonación de la matriz:
tt2.patients = tt.patients.dup tt2.doctors = tt.doctors.dup tt2.hospitals = tt.hospitals.dup
tercer enfoque Probé se 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))
Nada de lo anterior funciona para una copia completa de una matriz a otra. Después de probar cada enfoque individualmente anterior, todos los contenidos del primer objeto (tt
) quedan anulados (los pacientes, los médicos y los hospitales se han ido). ¿Tiene alguna otra idea sobre cómo copiar el contenido de un objeto a otro? Gracias.
Simplemente está configurando sus variables en el primer ejemplo. Pruebe tt2.patients = tt.patiens.clone en su lugar. – three