Anonyme Funktionen typisieren
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 24 von 80.
In Lua sind Funktionen Werte: Du hast sie in Variablen gespeichert und weitergegeben: local f = function(x) return x * 2 end. Diese anonymen Funktionen (Funktionsausdrücke) erhalten Typannotationen genau wie benannte Funktionen:
local double = function(x: number): number
return x * 2
end
local shout = function(text: string): string
return string.upper(text) .. "!"
endParameter erhalten innerhalb der Klammern die Form name: type, und der Rückgabetyp folgt auf die schließende Klammer: Der einzige Unterschied zu einer benannten Funktion besteht darin, dass das Schlüsselwort function keinen Namen hat und der gesamte Ausdruck einer Variablen zugewiesen wird.
Falls du JavaScript oder TypeScript kennst, beachte, dass Luau keine Pfeilfunktionen hat. Es gibt keine Syntax mit =>. Jeder Funktionsausdruck wird mit function ... end geschrieben, egal ob lang oder kurz.
Nach der Zuweisung rufst du die Funktion über die Variable wie jede andere Funktion auf: double(21) gibt 42 zurück, und der Prüfer überprüft jeden Aufruf anhand der von dir geschriebenen Annotationen.
Aufgabe
EinfachSpeichere typisierte Funktionen in lokalen Variablen.
- Schreibe
subtractalslocal subtract = function(a: number, b: number): numberum und behalte den Funktionskörper bei. - Füge
local isPositive = function(num: number): booleanhinzu, dasnum > 0zurückgibt. - Gib
subtract(10, 3)undisPositive(-5)aus.
Klicke auf Run Code: Die Ausgabe zeigt 7 und false.
Probier es selbst
-- Schreibe dies als anonyme Funktion um, die in einer lokalen Variablen gespeichert wird
function subtract(a: number, b: number): number
return a - b
end
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