Variablen in Lua werden mit dem Schlüsselwort local deklariert, um sie auf den lokalen Gültigkeitsbereich zu beschränken. Es gibt keine Typisierung bei Variablen – sie sind dynamisch typisiert.
local name = "Welt" local age = 25 local pi = 3.14
Die Funktion print() wird verwendet, um Ausgaben auf der Konsole zu erzeugen.
print("Hallo, " .. name .. "!")
Bedingte Anweisungen
local number = 10 if number > 0 then print("Die Zahl ist positiv.") elseif number < 0 then print("Die Zahl ist negativ.") else print("Die Zahl ist Null.") end
for-Schleife:
for i = 1, 5 do print(i) end
while-Schleife:
local count = 1 while count <= 5 do print(count) count = count + 1 end
repeat-until-Schleife:
local count = 1 repeat print(count) count = count + 1 until count > 5
Funktionen werden in Lua mit dem Schlüsselwort function definiert.
function greet(name) return "Hallo, " .. name .. "!" end print(greet("Welt"))
Tabellen sind das Hauptdatenstruktur in Lua. Sie können als Arrays, Dictionaries oder beides verwendet werden. Erstellen und Verwenden von Tabellen
-- Array Tabelle local fruits = {"Äpfel", "Bananen", "Kirschen"} print(fruits[1]) -- Ausgabe: Äpfel
-- Dictionary Tabelle local person = { name = "John", age = 30 } print(person.name) -- Ausgabe: John print(person["age"]) -- Ausgabe: 30
Iterieren über Tabellen
Array Tabelle:
for i, fruit in ipairs(fruits) do print(i, fruit) end
Dictionary Tabelle:
for key, value in pairs(person) do print(key, value) end
Metatabellen ermöglichen es dir, das Verhalten von Tabellen zu ändern, indem du spezielle Metamethoden definierst.
local mt = { __add = function(a, b) return a.value + b.value end } local a = { value = 5 } local b = { value = 10 } setmetatable(a, mt) setmetatable(b, mt) local sum = a + b print(sum) -- Ausgabe: 15
Fehler können mit pcall (protected call) oder xpcall (extended protected call) behandelt werden.
function riskyFunction() error("Ein Fehler ist aufgetreten!") end local status, err = pcall(riskyFunction) if not status then print("Fehler: " .. err) end
Lua unterstützt Module und Pakete durch die require-Funktion.
Beispiel für ein einfaches Modul (mymodule.lua):
local M = {} function M.sayHello() print("Hallo aus dem Modul!") end return M
Verwendung des Moduls:
local mymodule = require("mymodule") mymodule.sayHello() -- Ausgabe: Hallo aus dem Modul!