Variablen

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:

Zuweisung

Die erste Zuweisung definiert eine Variable mit dem verwendeten Wert.

Beispiel:

x = 61

Tabellendefinition

Wird ein literaler Wert (darf kein Ausdruck sein) direkt nach der zu definierenden Variable angegeben, so wird dieser der Variable zugewiesen.

Beispiele:

name  "Josef"
age   15
hobby "Developing"

Explizite klassifizierung

Anhand der Angabe einer Klasse durch ein Suffix-./-as wird eine Variable mit der Klasse definiert. Dabei sind bekannte Bezeichnungen für Standardklassen erlaubt.

Beispiele:

num.integer
pos as float
text.str

Explizit mit Sofortdefinition

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.

Beispiele:

num.integer(123)       'Setzt "num" auf 123
bad.queue("black", 13) 'Eine Queue mit ["black", 13]

Variant

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.

Beispiel:

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.

Queue

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.

Beispiel:

list[]            'Definiert eine leere Queue
matrix[3, 2].i(1) '= [[1, 1], [1, 1], [1, 1]]

Referenz

Durch ein & nach einer undefinierten Variable, erstellt man eine Referenz.

Beispiel:

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.

Sofort-Eingabe

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.

Beispiel:

def x>>
def y>>
out x, y 'Gibt die Summe beider Eingaben aus

Top | Home | Index