Menu
Coddy logo textTech

Shapes vs. lose Tabellen

Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 40 von 73.

Du hast jetzt zwei Möglichkeiten, mit Datensatz-Tabellen zu arbeiten: die lockere Variante, die du in Lua schon immer verwendet hast, und deklarierte Strukturen. Es lohnt sich, kurz innezuhalten und zu betrachten, was dir die jeweilige Variante bietet.

Eine lockere Tabelle akzeptiert alles. Diese Flexibilität hat ihren Preis: Wenn du dich bei einem Feld verschreibst (user.nmae), erhältst du stillschweigend nil; wenn du ein Feld vergisst, tritt der Fehler erst viel später zur Laufzeit auf, in dem Code, der als Erstes auf diese Lücke zugreift:

local user = {name = "Ana", age = 20}
print(user.nmae) -- lockere Tabelle: gibt stillschweigend nil aus

Deklarierst du eine Struktur, werden diese Fehler von der Laufzeit in die Bearbeitungszeit verlagert. Der Prüfer markiert den Tippfehler sofort, sobald du ihn schreibst, dein Editor kann Feldnamen automatisch vervollständigen, und die type-Deklaration dient gleichzeitig als Dokumentation darüber, was die Tabelle enthält:

type User = {name: string, age: number}
local user: User = {name = "Ana", age = 20}
print(user.nmae) -- ✗ Typfehler: Schlüssel 'nmae' nicht in User gefunden

Wenn du von TypeScript kommst, beachte, dass Luau kein Schlüsselwort interface besitzt: type deckt jede Struktur ab. Es gibt außerdem keine „Deklarationszusammenführung“: Zwei Typen mit demselben Namen im selben Gültigkeitsbereich zu deklarieren, ist ein Fehler, daher hat jede Struktur genau eine Definition.

Luaus Strukturen sind strukturell: Jede Tabelle mit den richtigen Feldern und den richtigen Typen passt, unabhängig davon, wo oder wie sie erstellt wurde. Und lockere Tabellen haben weiterhin ihren Platz: Schnelle Skripte und wirklich dynamische Daten benötigen keine deklarierte Struktur. Für alles, was zwischen Funktionen übergeben wird, fängt eine Struktur Fehler jedoch ab, solange sie noch günstig zu beheben sind.

Probier es selbst

Diese Lektion enthält keine Programmieraufgabe.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Einführung in Luau

Übe selbstständig: Online-Lua-Compiler