3 Stimmen

Tiefe Kopie der Sammlung mit proc-Objekten

Ich muss eine tiefe Kopie eines Objekts erstellen. Der einzige Weg, den ich kenne, um eine tiefe Kopie zu erstellen eines Objekts zu erstellen, ist folgendermaßen:

Marshal.load(Marshal.dump(my_object))

Zu meinem Entsetzen musste ich feststellen, dass, wenn ein Element des Objekts, das tief kopiert wird, ein proc-Objekt ist dann bekomme ich einen Fehler, weil Proc-Objekte keine keine Dump-Methode haben und nicht auf diese Weise tief kopiert Weise kopiert werden können.

Wie erstelle ich eine tiefe Kopie eines Objekts mit mit Procs darin?

1voto

RyanWilcox Punkte 13600

Eine tiefe Kopie in Ruby mit clone sollte das genügen. (Marshalling wird nicht für einige Objekte funktionieren... und es macht Sinn, wenn Procs in diese Kategorie fallen).

clone ist eine Konvention, die eine tiefe Kopie bedeutet, auch wenn tiefe Kopien in Ruby nicht von Haus aus unterstützt werden. Wie auch immer, eine Antwort auf SO auf eine ähnliche Frage hat eine wirklich gute, generische Implementierung von clone

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