Was ist Lua?
Lua (portugiesisch für "Mond") entstand 1993 an der PUC-Rio in Brasilien. Die Sprache ist winzig (der Interpreter hat wenige hundert KB), schnell und für die Einbettung in andere Programme gemacht. Du findest sie in Spielen (Roblox, World of Warcraft-Addons, Love2D, Garry's Mod), in Neovim-Konfigurationen, in Redis, nginx/OpenResty, Wireshark und in vielen Embedded-Geräten.
Lua hat nur wenige, aber sehr flexible Konzepte: eine einzige Datenstruktur (die Tabelle), Funktionen als Werte und Coroutinen.
Ausführen
lua hallo.lua # Datei
lua -e "print(1 + 2)" # eine Zeile
lua # interaktive KonsoleDas erste Programm
print("Hallo Lua!")
local name = "Mia"
print("Hallo, " .. name .. "!")
print("Zahl:", 42, "Wahrheitswert:", true)
io.write("ohne Zeilenumbruch")
io.write("\n")
print(string.format("%s ist %d Jahre alt", name, 17))Ausgabe
Hallo Lua! Hallo, Mia! Zahl: 42 Wahrheitswert: true ohne Zeilenumbruch Mia ist 17 Jahre alt
printgibt Werte mit Tab getrennt aus,io.writeohne Trennzeichen..verbindet Strings- Kommentare:
-- bis Zeilenende,--[[ mehrzeilig ]] - Anweisungen brauchen kein Semikolon
Wie Lua tickt
-- Lua zählt ab 1, nicht ab 0
local liste = {"a", "b", "c"}
print(liste[1], #liste)
-- nil ist "kein Wert"; nur nil und false sind falsch (0 und "" sind wahr!)
print(0 and "wahr" or "falsch")
print(nil and "wahr" or "falsch")
-- Funktionen sind Werte
local f = function(x) return x * 2 end
print(f(21))
-- Mehrfachzuweisung und Tausch
local a, b = 1, 2
a, b = b, a
print(a, b)
-- Typ prüfen
print(type(42), type("x"), type({}), type(print), type(nil), type(true))Ausgabe
a 3 wahr falsch 42 2 1 number string table function nil boolean
So führst du den Code aus: Datei hallo.lua speichern und mit lua hallo.lua starten. Online geht es z. B. im Lua Demo (lua.org/demo.html).
Merke
- Lua ist klein, schnell und einbettbar
- Alles läuft über Tabellen und Funktionen
- Indizes beginnen bei 1
- Nur
nilundfalsesind falsch ..verkettet,printundio.writegeben aus
Aufgabe
Gib mit print einen Satz mit deinem Namen und deinem Lieblingsprogramm aus, verbunden mit ...