prevnext   » Startseite » Haupt-Referenz » Funktions-Referenz » move()

move()

Den Inhalt einer Variable auf den Stack zur Weiterverarbeitung verschieben.

Syntax:

var_type move ( var )

Parameter:

var Eine Variable, die auch indiziert sein kann.

Beschreibung:

Diese Funktion dient der Optimierung.

Wenn der Inhalt einer Quellvariable nicht mehr benötigt wird, dann kann die Funktion move() verwendet werden, um den Inhalt auf den Stack zu verschieben anstatt den Inhalt aufwendig zu kopieren. Die urpsrüngliche Variable hat hiernach den Wert NONE. Die Verwendung von move() ist daher bei Zeichenketten, Listen und Maps sinnvoll, da beim verschieben keine temporären dynamischen Speicherbereiche angelegt werden müssen.

Beispiel: Bei der Anweisung A = A + B wird der Inhalt der beiden Variablen A und B auf den Stack kopiert und anschließend zu einer Zeichenkette verbunden. Beim kopieren müssen neue Speicherbereiche angelegt werden. Das Ergebnis wird wiederum auf dem Stack abgelegt um dann nach A vershhoben zu werden.

Bei der Anweisung A = move(A) + B wird die Zeichenkette aus A verschoben. Daher entfällt eine Speicherreservierung und ein Kopiervorgang. Die Semantik ändert sich nicht, da A ja sowieso einen neuen Wert erthält.

Bei der Anweisung A = move(A) + move(B) werden beide Quell-Zeichenketten verschoben. Die Semantik ändert sich hier allerdings, da der Inhalt von B verloren geht.

Bei Verwendung von großen Datenstrukturen mit Listen und Maps vergrößert sich der Vorteil durch die Verwendung von move() noch wesentlich. Bei den numerischen Datentypen bringt die Verwendung von move() einen kleinen Nachteil beim Auswerten des Ausdruckes.

Funktionsergebnis:   var_type

Als Ergebnis wird der Inhalt der Variable var geliefert. Die Variable var hat hiernach den Wert NONE.

Siehe auch:
 l$move()   ref() 

Weitere ähnliche Funktionen:

Variablen
Funktion Kurzinfo
clear() Den Inhalt eines Ausdruckes bei Beibehaltung des Typs löschen.
copyRef() Eine Kopie einer Liste oder Map als Referenz erstellen.
def() Überprüfung auf dei Definition von Variablen.
defined() Überprüfung auf dei Definition von Variablen.
firstDef()
isEmpty() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert und vom Typ NONE ist.
isFloat() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert und vom Typ FLOAT ist.
isInt() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert und eine Ganzzahl ist.
isInt32() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert und vom Typ INT32 ist.
isInt64() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert und vom Typ INT64 ist.
isList() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert und vom Typ LIST ist.
isMap() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert und vom Typ MAP ist.
isNum() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert und eine Zahl ist.
isScalar() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert und ein Skalar ist.
isString() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert und vom Typ STRING ist.
isUtf16() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert, vom Typ STRING ist und gemäß UTF-16 kodiert ist.
isUtf32() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert, vom Typ STRING ist und gemäß UTF-32 kodiert ist.
isUtf8() Test, ob eine Variable mit gegebenen oder errechnetem Namen existiert, vom Typ STRING ist und gemäß UTF-8 kodiert ist.
lastDef()
move() Den Inhalt einer Variable auf den Stack zur Weiterverarbeitung verschieben.
ref() Eine Kopie einer Liste oder Map als Referenz erstellen.
refCount() Die Anzahl der Referenzen auf eine Objekt ermitteln.
symbol()
type() Den type eines Ausdruckes ermitteln.
var() Den Namen einer Variable konstruieren.
varName() Den Namen einer Variable konstruieren.