EMZETT.
Login

Kurz: 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.

Teil des Kurses Lua

Kapitel 1 von 8 im Kurs Lua. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

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 Konsole

Das erste Programm

hallo.lua

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
  • print gibt Werte mit Tab getrennt aus, io.write ohne 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

Merke

  • Lua ist klein, schnell und einbettbar
  • Alles läuft über Tabellen und Funktionen
  • Indizes beginnen bei 1
  • Nur nil und false sind falsch
  • .. verkettet, print und io.write geben aus

Übungsaufgabe

Gib mit print einen Satz mit deinem Namen und deinem Lieblingsprogramm aus, verbunden mit ...

Quiz zur Selbstkontrolle

Weiter im Kurs

Weiter: Variablen und Datentypen

Alle Kapitel: Lua im Überblick