15 Stimmen

Tiefe Kopie von Arrays in Ruby

Ich wollte ein Objekt in der Produktion abrufen und eine exakte Replik (Kopie seines Inhalts) auf ein anderes Objekt desselben Typs erstellen. Ich habe versucht, dies in 3 Möglichkeiten von Ruby-Konsole, die keiner von ihnen gearbeitet:

  1. Nehmen wir an, Sie haben die tt als erstes Objekt, das Sie kopieren wollen, und tt2 als Replikationsobjekt. Der erste Ansatz, den ich versucht habe, ist das Klonen des Arrays

    tt2.patients  = tt.urls.patients
    tt2.doctors   = tt.segments.doctors
    tt2.hospitals = tt.pixels.hospitals
  2. Der zweite Ansatz, den ich versucht habe, ist das Duplizieren des Arrays, was eigentlich dasselbe ist wie das Klonen des Arrays:

    tt2.patients  = tt.patients.dup
    tt2.doctors   = tt.doctors.dup
    tt2.hospitals = tt.hospitals.dup
  3. Der dritte Ansatz, den ich ausprobiert habe, ist das 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)) 

Keines der oben genannten Verfahren funktioniert beim tiefen Kopieren von einem Array in ein anderes. Nachdem ich jeden Ansatz einzeln ausprobiert habe, ist der gesamte Inhalt des ersten Objekts ( tt ) sind nichtig (Patienten, Ärzte und Krankenhäuser sind weg). Haben Sie eine andere Idee, wie man den Inhalt eines Objekts in ein anderes kopieren kann? Danke!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X