In der value
-Bibliothek sind einige Befehle bereitgestellt, um Werte genauer zu behandeln. Beispielsweise kann man die Klasse eines Wertes ermitteln und den Namen des Trägers auslesen.
class(value)
Gibt die Klasse des angegebenen Wertes als Zeiger auf diese zurück. Diese Funktion ist besonders nützlich, wenn man die Klassen von ursprünglichen Variants und Referenzen überprüfen möchte.
number = 65
other number = 9.81
out value\class(number) '= @integer
out value\class(other number) '= @float
out value\class("abc") '= @string
swap(value1, value2)
Tauscht den Inhalt beider Werte durch das Dreiecksprinzip. Mit dieser Funktion erspaart man sich das Erstellen und Löschen eines Zwischenwertes.
name(value)
Gibt den Namen der Variable zurück, die den angegebenen Wert enthält. Falls der Wert keine Variable besitzt (im Stack gepusht) wird der Name der Klasse zurückgegeben.
put(any&){
out value\name(any) << " = " << any
}
x = 2
y = 3
put(x) 'Gibt "x = 2" aus
put(y) 'Gibt "y = 3" aus
put(x + y) 'Gibt "int = 5" aus
variable(value), var
Dieser Befehl gibt einen Zeiger auf die Variable des Wertes zurück.
func(){
def a = 1
def b = 2
return a
}
'Nächste Variable aus dem Rückgabewert erkennen:
out value\variable(func):next:name '= "b"