Menu
Coddy logo textTech

Das Problem, das Generics lösen

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

Stell dir vor, du brauchst eine Funktion, die einfach jeden Wert zurückgibt, den du ihr übergibst: eine Identitätsfunktion. Mit den Typen, die du bisher kennst, hast du zwei Möglichkeiten, und beide sind problematisch.

Möglichkeit eins: Schreibe für jeden Typ eine separate Kopie. Die Funktionskörper sind identisch; nur die Annotationen unterscheiden sich:

local function echoNumber(value: number): number
    return value
end

local function echoString(value: string): string
    return value
end

Jeder neue Typ bedeutet eine weitere Kopie, und ein Fehler, der in einer Kopie behoben wird, muss in allen anderen ebenfalls behoben werden. Genau diese Duplizierung möchtest du durch das Schreiben von Funktionen vermeiden.

Möglichkeit zwei: Fasse sie zu einer einzigen Funktion zusammen, die mit any typisiert ist:

local function echo(value: any): any
    return value
end

Jetzt verarbeitet eine Funktion alles, aber du bezahlst dafür mit Typsicherheit. Wenn du echo("hello") aufrufst, weiß der Prüfer nicht mehr, dass das Ergebnis ein String ist. Er kennt nur any, sodass die Autovervollständigung ausfällt und Typfehler unbemerkt bleiben: Die Verbindung zwischen dem, was hineinging, und dem, was herauskommt, ist verloren.

Was du wirklich möchtest, ist eine Funktion, die für jeden Typ funktioniert und sich merkt, welchen Typ jeder Aufruf verwendet hat. Genau das ermöglichen dir Generics, und sie sind das Thema dieses Kapitels.

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