Inhaltsverzeichnis

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!