$object.copy()
$object.copy($context, $filter, $constructor)
Erstellt eine tiefe Kopie des Objektes bzw. eine einfache Kopie des Wertes object.
In einer tiefen Kopie eines Objektes sind alle über Kompositionsreferenzen erreichbare Objekte ebenfalls mitkopiert. Andere Referenzen in dem kopierten Objektgraphen sind auf Objekte in dem neuen Graphen umgesetzt, wenn sie im ursprünglichen Graphen auf ein Objekt zeigten, das bei der Kopieroperation mitkopiert wurde.
| Name | Typ | Beschreibung | Pflicht | Default |
|---|---|---|---|---|
| object | Zahl/Zeichenkette/Wahrheitswert/Fachobjekt/Menge | Das zu kopierende Objekt bzw der zu kopierende Wert. | ja | |
| context | Fachobjekt | Das Context-Objekt, das bei der Anlage der top-level Kopie (von object) mitgegeben wird. |
nein | null |
| filter | Funktion |
Entscheidet, ob eine bestimmte Eigenschaft aus dem Ursprungsgraphen mitkopiert werden soll. Die Filter-Funktion erhält drei Argumente.
Ist die Entscheidung Ist die Entscheidung |
nein | attribute -> orig -> context -> true |
| constructor | Funktion |
Eine Funktion, die ein Objekt aus dem Ursprungsgraphen nimmt und eine (uninitialisierte) Kopie dieses Objektes zurückliefert. Die Funktion erhält drei Argumente:
Liefert die Konstruktorfunktion |
nein | orig -> reference -> context -> null |
Typ: Zahl/Zeichenkette/Wahrheitswert/Fachobjekt/Menge
In Abhängigkeit vom Typen von x wird folgendes von der Funktion zurückgeliefert:
{
a = new(`my.module:MyClass`);
$a.set(`my.module:MyClass#name`, "orig");
b = $a.copy();
$b.set(`my.module:MyClass#name`, "copy");
list($a, $b);
}
Ausgabe: Gibt eine Liste mit dem originalen und dem kopierten Objekt aus: [orig, copy]
{
a = new(`my.module:MyClass`);
b = new(`my.module:MyClass`);
list = list($a, $b);
$list.copy();
}
Ausgabe: Eine Liste mit Kopien der Objekte a und b.
{
a = 5;
b = $a.copy();
list($a, $b);
}
Ausgabe: Eine Liste mit den Werten [5, 5] - ein Mal die originale Zahl und ein Mal die kopierte.