Zusammenfassung: Generische Funktionen
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy — Lektion 62 von 73.
Aufgabe
MittelKombiniere generische Typ-Aliase und generische Funktionen in einem Programm.
Definiere einen generischen Typ-Alias namens Pair mit zwei Typparametern T und U, der eine Tabelle wie folgt beschreibt:
firstvom TypTsecondvom TypU
Erstelle eine generische Funktion namens makePair, die T und U deklariert, first: T und second: U entgegennimmt und diese verpackt in einem Pair<T, U> zurückgibt.
Erstelle eine generische Funktion namens describePair, die T und U deklariert, ein pair: Pair<T, U> entgegennimmt und den String ({first}, {second}) zurückgibt, der mit String-Interpolation erbaut wurde (Rückgabetyp string).
Danach:
- erstelle
playerScorevom TypPair<string, number>durch Aufruf vonmakePair("Nova", 87) - erstelle
levelDonevom TypPair<number, boolean>durch Aufruf vonmakePair(3, true) - gib
playerScore.firstaus - gib
playerScore.secondaus - gib
describePair(playerScore)aus - gib
describePair(levelDone)aus - gib
describePair(makePair("Luau", 2026))in einer einzelnen Zeile aus
Probier es selbst
-- Schreibe Code hier
-- 1) definiere Typ Pair<T, U> = {first: T, second: U}
-- 2) definiere makePair<T, U>(first: T, second: U): Pair<T, U>
-- 3) definiere describePair<T, U>(pair: Pair<T, U>): string
-- gibt `({pair.first}, {pair.second})` zurück
-- 4) erstelle playerScore ("Nova", 87) und levelDone (3, true),
-- dann gib die fünf erforderlichen Zeilen aus
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 Luau4Arbeiten mit Funktionen
Typisierung von Parametern & RückgabewertenTypisierung von anonymen FunktionenFunktionen ohne RückgabewertOptionale ParameterStandard-ParameterwerteVariadische FunktionenDefinieren von FunktionstypenZusammenfassung: Typisierte Funktionen2Grundtypen
Grundlegende Typen: num, str, boolDer Typ 'any': Der AuswegDer Typ 'unknown'Nil- & optionale TypenTypinferenz in der PraxisExplizite TypannotationenZusammenfassung: Praxis zu Grundtypen5Typ-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 ArraysHinzufügen und Lesen von ElementenWas ist ein Map-Typ?Deklarieren und Zugreifen auf MapsIterieren von TabellenGemischt-strukturierte TabellenMehrdimensionale typisierte Arraystable.unpack und VarargsZusammenfassung: Arrays und Maps6Typisieren von Tabellen-Shapes
Inline-Shape-AnnotationenTyp-Aliase für ShapesOptionale EigenschaftenShapes vs. lose TabellenShapes erweiternMethoden zu Shapes hinzufügenSelf und Methoden mit DoppelpunktZusammenfassung: Definieren von Tabellen-Shapes9Generics: Ein erster Einblick
Das Problem, das Generics lösenEine generische IdentitätsfunktionVerwendung einer generischen FunktionGenerische ArraysGenerische Typ-AliaseZusammenfassung: Generische Funktionen