Variablen speichern in Operno Werte, welche immer wieder mittels der Variable gelesen und überschrieben werden können.
Folgende Wege zur Definition könenn verwendet werden:
Die erste Zuweisung definiert eine Variable mit dem verwendeten Wert.
x = 61
Wird ein literaler Wert (darf kein Ausdruck sein) direkt nach der zu definierenden Variable angegeben, so wird dieser der Variable zugewiesen.
name "Josef"
age 15
hobby "Developing"
Anhand der Angabe einer Klasse durch ein Suffix-.
/-as
wird eine Variable mit der Klasse definiert. Dabei sind bekannte Bezeichnungen für Standardklassen erlaubt.
num.integer
pos as float
text.str
Wird eine Parameter-Klammer nach der Definition expliziten Klassifizierung angehängt, so wird die Variable mit den Parametern definiert. Die verwendete Auto-Klassenmethode ist _def
.
num.integer(123) 'Setzt "num" auf 123
bad.queue("black", 13) 'Eine Queue mit ["black", 13]
Durch das Erwähnen eines undefinierten Objekts wird eine Variable als Variant definiert. D.h. die Variable besitzt bis zur ersten Zuweisung keine bestimmte Klasse und keinen Wert. Somit können z.B. Parameter einer Funktion jede Klasse annehmen.
sum(a, b){
'"a" und "b" können von jedem Typ sein!
return a + b
}
In statischen Sprachen, wie C++, verwendet man oftmals Überladungen und Templates, um Funktionen mit mehreren Klassen kompatibel zu machen.
Eine Variable kann als Queue definiert werden, indem man direkt nach dem undefinierten Objekt eckige Klammern setzt. Optional können durch Kommata Größen für mehrere Dimensionen angegeben werden. Nach den eckicken Klammern ist auch eine explizite Klassifizierung aller Felder erlaubt.
list[] 'Definiert eine leere Queue
matrix[3, 2].i(1) '= [[1, 1], [1, 1], [1, 1]]
Durch ein &
nach einer undefinierten Variable, erstellt man eine Referenz.
def swap(x&, y&){
def temp = x
x = y
y = temp
}
a = 1
b = 2
swap(a, b)
out a, b '= 2, 1
Der Parser ersetzt das &
in .reference
. D.h. dieses Zeichen ist nur ein Symbol für die explizite Klassifizierung mit der Klasse reference
.
Setzt man den Eingabe-Operator (>>
) direkt nach einem unbekannten Objekt, dann wird eine Variable mit dem Wert initialisiert, den der Benutzer nach der Definition eingeben kann.
Diese Definition ist besonders für Tests geeignet, da auf überflüssige Benutzeroberflächen verzichtet wird.
def x>>
def y>>
out x, y 'Gibt die Summe beider Eingaben aus