=====Variablen=====
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 .. "!")
=====Kontrollstrukturen=====
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
=====Schleifen=====
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=====
Funktionen werden in Lua mit dem Schlüsselwort function definiert.
function greet(name)
return "Hallo, " .. name .. "!"
end
print(greet("Welt"))
=====Tabellen=====
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 und Metamethoden=====
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
=====Fehlerbehandlung=====
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
=====Module und Pakete=====
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!