Sprach-Konstrukte / Variablen und Konstanten

Variablen und Konstanten

Mit Variablen und Konstanten lassen sich Objekte einmerken.
JayMo speichert hier die Referenz zu einem Objekt, jedoch nicht den Wert.

Variablen

Der Name einer Variable kann aus Klein- & Großbuchstaben, sowie Zahlen und dem Unterstrich bestehen. Am Anfang muss allerdings immer ein Kleinbuchstabe stehen.

[a-z][a-zA-Z0-9_]*

Variablen bieten einen flexiblen Speicher, der je nach belieben neu zugewiesen werden kann.

Der erste zugewiesene Typ wird gespeichert, weshalb generell nur noch Objekte des selben Typs zugewiesen werden können.

Zudem ist es generell nicht erlaubt, einer Variable "nil" zuzuweisen.

Wichtig ist auch, dass eine Variable immer initialisiert werden muss. Das Auslesen einer Variable ohne vorheriges Zuweisen, führt zu einem Fehler.

a = 123

Nil

Um auch den Wert "nil" zu erlauben, wird an die Variable ein Fragezeichen "?" angehängt. Generell darf dieses bei der weiteren Verwendung entfallen:

a? = nil
Print a

Konstanten

Der Name einer Konstante kann aus Großbuchstaben, Zahlen und dem Unterstrich bestehen. Am Anfang muss allerdings immer ein Großbuchstabe stehen.

[A-Z][A-Z0-9_]*

Konstanten können nach dem ersten Zuweisen nicht mehr geändert werden.

ABC = "abc"
ABC.print

Generell ist der Wert "nil" für Konstanten nicht zulässig. Mit einem angehängten Fragezeichen wird dies jedoch erlaubt:

XY? = nil

Typsicherheit

Für mehr Typ-Sicherheit kann der Typ einer Variable oder Konstante direkt vorgegeben werden. Hierfür wird bei der Definition der Typ direkt vor die Variable geschrieben.

Int abc = 5
Int FOO = 5

Da Objekte meist von mehreren Typen erben, kann auch ein übergeordneter Typ gewählt werden. So wird ein Bereich an Typen zugelassen:

Atomic a = 123
a = "foo"
a = true

Da jedes Objekt von "Object" erbt, ist es möglich alle Typen außer "nil" zuzulassen:

Object o = 123

Eine Variable die jedes inkl. "nil" speichern kann, wird wie folgt erzeugt:

Object o? = 123

Veränderungen

Das "@varChanged"-Event wird ausgelöst, wenn einer Variable ein neuer Wert zugewiesen wird. Um auf die Variable an sich und nicht den enthaltenen Wert zuzugreifen, wird hierzu das "VarLet" verwendet.

a = 5
:a::@varChanged
	"Value has changed to: ".add( it ).print

a = 2
a=++
a.print

Im nachfolgenden Block kann mit "it" auf den neuen Wert zugegriffen werden.

- Powered by OghsWiki -

 

 

Unterstützen

Die Entwicklung von "JayMo" wird derzeit nur durch Eigeninitiative ermöglicht.

Erhalten:  0 €