Dies ist eine alte Version des Dokuments!
Variablen
Variablen sind Behälter für einen beliebigen Wert, den man mit Lua ausdrücken kann. Eine Variable besteht aus ihrem Namen (Key) und ihrem Inhalt (Value). Über ihren Namen kann eine Variable eindeutig identifiziert bzw. ihr Inhalt abgerufen werden.
In Lua wird eine Variable definiert, indem ihr Name, gefolgt von einem =-Zeichen, einem Wert zugewiesen wird.
Ein Beispiel:
Result = 42
Der Name dieser Variable ist Result, ihr Inhalt 42. Eine Variable auf diese Art zu definieren wird auch Zuweisung genannt, wie im Kochrezeptbeispiel erklärt.
Beim Namen für eine Variable ist zu beachten, dass zwischen Groß- und Kleinschreibung unterschieden wird. Folgender Code würde zwei verschiedene Variablen erschaffen, die nichts miteinander zu tun haben:
Result = 42 result = 41
Auch dürfen in Variablennamen ausschließlich Groß- und Kleinbuchstaben (ausgenommen Umlaute), Ziffern und der Unterstrich vorkommen. Der Variablenname darf nicht mit einer Ziffer beginnen. Wir listen einige gültige und ungültige Variablennamen im folgenden Beispiel auf:
Result = 42 -- gültig _Result = 42 -- gültig R3su1t = 42 -- gültig 4tytwo = 42 -- ungültig! Zaubärzahl = 42 -- ungültig! -- Wir verwenden ab jetzt regelmäßig diese Kommentare in Codebeispielen. -- Kommentare sind kein Programmcode, sondern machen den gegebenen Code durch -- unterstützende Erklärungen besser verständlich. -- Kommentare werden in Lua mit -- eingeleitet
Wichtig: Das =-Zeichen bei der Variablenzuweisung hat nichts mit dem =-Zeichen zu tun, wie man es aus der Mathematik kennt. Man kann nicht einfach ein Gleichungssystem ins Skript tippen, das dann vom Programm gelöst wird!
Eine Zuweisung arbeitet in einer fest vorgegebenen Reihenfolge:
- Nimm den Wert, der rechts vom =-Zeichen steht
- Speichere diesen Wert unter dem Namen, der auf der linken Seite steht, ab
Dementsprechend müssen die Werte, die jeweils links und rechts vom = stehen, nicht notwendigerweise gleich sein. Dies wird offensichtlich, wenn man beginnt, mit Variablen zu rechnen. Dazu folgen nun einige Kapitel für die jeweiligen Datentypen, die eine Variable halten kann.
Zahlen
Lua kann sowohl mit ganzen Zahlen als auch Dezimalzahlen arbeiten. Bei letzteren ist zu beachten, dass das Dezimaltrennzeichen kein Komma, sondern ein Punkt ist:
DecimalNumber = 4.2
Für Zahlen stehen in Lua die gängigen Rechenoperationen zur Verfügung:
Zeichen | Rechenoperation | Beispiel |
---|---|---|
+ | Addition | Result = 40 + 2 |
- | Subtraktion | Result = 48 - 6 |
* | Multiplikation | Result = 7 * 6 |
/ | Division | Result = 84 / 2 |
^ | Exponentiation | Result = 3.4761^3 |
- | Negation (einzelner Wert) | Result = - (- 42) |
Im letzten Beispiel haben wir noch Klammern eingesetzt, um die Berechnungsreihenfolge festzulegen. Ohne Klammerung gilt Punkt vor Strich (bzw. Exponentiation hat die höchste Priorität von allen). Für einige weitere mathematische Operationen siehe die math-Übersicht
Wenn man mehr als eine Variable hat, kann man diese auch untereinander verrechnen:
FirstNumber = 32 SecondNumber = 2 ThirdNumber = 0.5 FourthNumber = 10.5 Result = ( FirstNumber / SecondNumber )^ThirdNumber * FourthNumber
An folgendem Beispiel kann man leicht erkennen, dass das =-Zeichen der Zuweisung dient und keinen mathematisch korrekten Ausdruck formuliert:
FirstNumber = 5 -- Berechne zuerst den Wert rechts vom = : Das ergibt 15, weil FirstNumber zu dem -- Zeitpunkt noch den Wert 5 hat. Erst danach wird 15 als die neue FirstNumber abgespeichert FirstNumber = FirstNumber + 10 SecondNumber = FirstNumber - 3 SecondNumber = SecondNumber / 2 ThirdNumber = FirstNumber * SecondNumber ThirdNumber = ThirdNumber - 48
Strings
Strings sind Zeichenketten und werden meistens für die Darstellung von Text verwendet. Strings beginnen und enden mit Anführungszeichen:
Text = "Hallo Welt"
Strings können mit zwei aufeinanderfolgenden Punkten miteinander verkettet werden:
Text1 = "Hallo " Text2 = "Welt" Text3 = Text1..Text2
Auf diese Art verkettet können auch Variablen mit Zahlenwert in einen String eingefügt werden:
MyNumber = 42 Text = "Die Antwort lautet "..MyNumber.."! Großartig!"
TODO: Zeichen, die nicht erlaubt sind und escaped werden müssen