Bezeichnung
CopyTable -- erstellt eine unabhängige Kopie einer Tabelle (V4.6)
Übersicht
t = CopyTable(src[, shallow])
Beschreibung
Dieser Befehl kann verwendet werden, um eine unabhängige Kopie der angegebenen Quelltabelle zu erstellen. Wie Sie wahrscheinlich bemerkt haben, wird nur ein Verweis auf die Tabelle erstellt, wenn die Quelltabelle mit dem Gleichheitszeichen (=) einer neuen Variablen zugewiesen wird. Dies wird aus Effizienzgründen gemacht, weil die Herstellung vollständiger Kopien einer Tabelle in den meisten Fällen nicht notwendig ist. In einigen Fällen jedoch müssen Sie eine völlig unabhängige Kopie der Tabelle haben. Dies kann mit diesem Befehl durchgeführt werden.

Beginnend mit Hollywood 6.0 akzeptiert dieser Befehl das optionale Argument shallow. Wenn Sie dieses Argument auf True setzen, wird CopyTable() anstelle einer unabhängigen Kopie alle Untertabellen nur durch einen Verweis kopieren. Das bedeutet, wenn die Quelltabelle geändert wird, alle Kopien die in Bezug stehen auch modifiziert werden. Das hat den Vorteil, dass Ressourcen geschont werden und kann auch nützlich für den Fall sein, falls eine vollständige Kopie zu einem Stapelüberlauf führen würde.

Siehe Tabellen für Details.

Eingaben
src
Tabelle, die zu kopieren ist
shallow
optional: gibt an, ob eine vollständige (False) oder eine Kopie mit Verweis erstellt werden soll (True) (Standard ist False) (V6.0)
Rückgabewerte
t
neue Tabelle
Beispiel
t1 = {1, 2, 3, 4, 5}
t2 = t1
t2[0] = 10
DebugPrint(t1[0]) ; -> gibt 10 aus, weil t2 ein Verweis auf t1 ist
t3 = CopyTable(t1)
t3[0] = 20
DebugPrint(t1[0]) ; -> gibt 10 aus!
Dieser Code zeigt zunächst das Verhalten bei einer Kopie einer Tabelle, welche nur einen Verweis auf eine vorhandene Tabelle erstellt. Danach erfolgt über CopyTable() eine vollständige Kopie.

Navigation zeigen