Zum Inhalt

Syntax und Datentypen

Kommentare

Kommentare sind Zeilen in einer Lua Quellcode-Datei, die bei der Ausführung eines Skripts ignoriert werden. In Lua werden Kommentare durch zwei führende Minus-Zeichen eingeleitet und enden in der Regel mit dem Zeilenende.

-- Anmerkung 1
-- Anmerkung 2

Zahlen

Zahlen sind immer Gleitkommazahlen mit doppelter Genauigkeit. Es gibt keine ganzzahligen Typen in Lua. Dies bedeutet, dass diese immer als Dezimalzahlen dargestellt werden und daher z.B. 4 und 4.0 identisch sind.

3.4
10E10

Logische Werte

Logische Werte (Boolesche Werte) sind true oder false in Lua. Diese Werte sind in der Regel die Ergebnisse von Vergleichen (3<4) oder logischen Operationen (3<=4 and a<5 and not b).

Zeichenketten

Zeichenketten (Strings) werden durch ein Apostroph ' oder ein doppeltes Anführungszeichen " begrenzt.

"Ich sage Hallo Welt!"
'Ich sage "Hallo Welt!"'

Lua-Tabellen

Lua kennt Objekte in der Form des Lua Datentyps "Tabelle" (nicht mit CadnaA-Tabellen zu verwechseln). Grundsätzlich verknüpfen Lua Tabellen sog. "Schlüssel" (keys) mit Werten. Dies ist leicht anhand eines Beispiels zu verstehen. Die allgemeine Syntax ist:

mytable = {key1 = val1, key2 = val2, ....}
-- assigning to table
mytable.key1 = val1
mytable["key1"] = val1 -- alternatively
-- accessing elements of table
val1 = mytable.key1
val1 = mytable["key1"] -- alternatively

Die Schlüssel-Typen können Zahlen oder Strings sein. Als Werte ist jede Art von Lua Wert bzw. Variable verwendbar. Der Wert des Schlüsselworts products in dieser Lua-Tabelle ist ein Sonderfall: ein Array. Arrays sind normale Lua Tabellen mit ganzen Zahlen für Schlüssel (keys). Verwenden Sie die Klammer-Notation, um auf die Elemente zugreifen.

cont_info = {company= "DataKustik GmbH", 
    town= "Gilching", 
    products= {"CadnaA", "CadnaR"}}
cna.print(cont_info.company)
cna.print(cont_info.town)
cna.print(cont_info.products[2])

cont_info.company2 = "BMW AG" -- alternative 1
cont_info.town2 = "Munich"
cont_info.products2 = {"323", "525", "740", "X1", "X5"}
cna.print(cont_info.company2)
cna.print(cont_info.town2)
cna.print(cont_info.products2[2] ..'  '.. 
    cont_info.products2[4])
cna.print(cont_info['company']) -- alternative 2
cna.print(cont_info['town'])
cna.print(cont_info['products']) -- doesn‘t work with arrays!

Die Anzahl der Elemente in einer Reihe kann durch den # Operator festgestellt werden. Das heißt, #cont_info.products steht für "Anzahl der Produkte".

nil

Das Schlüsselwort nil zeigt das Fehlen von Daten an.