Was ist Luau?
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 1 von 80.
Luau ist eine bei Roblox entwickelte Programmiersprache, die auf dem Lua aufbaut, das du bereits kennst, und es um graduelle statische Typen erweitert. Stell sie dir als Lua mit einer zusätzlichen Ebene für Sicherheit und Werkzeuge vor. Sie treibt Millionen von Roblox-Erlebnissen an und ist seit 2021 quelloffen.
Die zentrale Idee ist, dass Luau eine Obermenge von Lua 5.1 ist. Jeder gültige Lua-5.1-Code ist auch gültiger Luau-Code: Du kannst ein Skript, das du in den vorherigen Abschnitten geschrieben hast, nehmen und unverändert als Luau ausführen.
Was Luau zusätzlich bietet, sind Typannotationen. Eine Annotation legt fest, welche Art von Daten eine Variable enthalten soll – einen String, eine Zahl, einen booleschen Wert oder eine Tabelle –, damit Fehler erkannt werden können, noch bevor dein Code überhaupt ausgeführt wird:
-- Lua (auch in Luau gültig)
local playerName = "Rio"
-- Luau mit einer Typannotation
local playerName: string = "Rio"Das Wort gradual ist wichtig: Annotationen sind optional. Du kannst eine einzelne Variable, eine einzelne Funktion oder eine ganze Datei typisieren: Code ohne Typangaben im Lua-Stil funktioniert weiterhin, während du nach und nach Typen hinzufügst.
Im Gegenzug erhältst du bessere Werkzeuge im Editor, besser lesbaren Code und Schutz vor der Art von Fehlern, die sich bei reinem Lua erst zeigen, während das Programm läuft.
Aufgabe
EinfachMach aus dieser Lua-Variable eine typisierte Luau-Variable.
- Füge in der Zeile
local message = "Hello World"direkt nachmessage: stringhinzu. - Lass die Zeile
print(message)unverändert.
Drücke Code ausführen: Die Ausgabe zeigt Hello World.
Probier es selbst
-- Reines Lua: message hat noch keinen Typ
local message = "Hello World"
print(message)
Alle Lektionen in Einführung in Luau
1Erste Schritte mit Luau
Was ist Luau?Warum Luau nutzen?Dein erster Luau-CodeTypprüfung & FehlermodiZusammenfassung: Einführung in Luau4Mit Funktionen arbeiten
Parameter und Rückgabewerte typisierenAnonyme Funktionen typisierenFunktionen ohne RückgabewertOptionale ParameterStandardwerte für ParameterStandardwerte für boolesche WerteFunktionen mit variabler ParameteranzahlFunktionstypen definierenRückblick: typisierte Funktionen7Projekt: Typisierter Aufgabenmanager
Projekt: Die AufgabenstrukturFunktion zum Hinzufügen einer Aufgabe2Grundlegende Typen
Zahl, String und BooleanDer Typ „any“: NotausgangDer Typ „unknown“Nil- und optionale TypenTypinferenz in der PraxisExplizite TypannotationenRückblick: Übung zu grundlegenden Typen5Typ-Aliase, Union-Typen und Schnittmengen-Typen
Typ-Aliase für PrimitivenUnion-TypenArbeiten mit Union-TypenLiterale TypenSchnittmengen-Typen (Intersection Types)Kombination von Typ-AliasenZusammenfassung: Fortgeschrittene Typ-Kombinationen3Typisierte Tabellen: Arrays & Maps
Typisierte ArraysElemente hinzufügen und auslesenWas ist ein Map-Typ?Maps deklarieren und auf Elemente zugreifenTabellen durchlaufenTabellen mit gemischten FormenEin Raster auslesenEin Raster erstellentable.unpackRückblick: Arrays und MapsÜbe selbstständig: Online-Luau-Compiler