Menu
Coddy logo textTech

Generische Arrays

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

Generics werden wirklich nützlich, sobald Tabellen ins Spiel kommen. Du schreibst typisierte Arrays bereits als {number} oder {string}. Innerhalb einer generischen Funktion kann der Elementtyp einfach T sein, und {T} bedeutet „ein Array aus dem, als was sich T letztendlich herausstellt“.

Hier ist das klassische Beispiel: das erste Element eines beliebigen Arrays abrufen:

local function first<T>(items: {T}): T?
    return items[1]
end

Übergib ein {string}, und der Prüfer leitet T = string her, sodass das Ergebnis ein String ist. Übergib ein {number}, und es ist eine Zahl. Eine Funktion ersetzt eine ganze Gruppe typspezifischer Kopien.

Sieh dir den Rückgabetyp genau an: Er ist T?, nicht T. Ein Array kann leer sein, und dann ist items[1] nil: Der optionale Typ, den du zuvor kennengelernt hast, sagt dies ehrlich aus: „ein T oder nil“. Der Prüfer wird Aufrufer dazu anhalten, den Fall nil zu behandeln, bevor sie das Ergebnis verwenden – genau das Aufspüren von Fehlern, das du von einer typisierten Sprache erwartest.

challenge icon

Aufgabe

Einfach

Erstelle eine generische Funktion namens first, die:

  • einen Typparameter T deklariert
  • einen Parameter namens items vom Typ {T} akzeptiert
  • das erste element zurückgibt, mit dem Rückgabetyp T? (es ist nil für ein leeres array)

Erstelle diese typisierten arrays:

  • fruits vom Typ {string} mit "apple", "banana", "cherry"
  • scores vom Typ {number} mit 10, 20, 30, 40
  • flags vom Typ {boolean} mit false, true
  • empty vom Typ {string} ohne elemente

Gib das Ergebnis des Aufrufs von first mit jedem array in dieser Reihenfolge aus, jedes in einer eigenen Zeile.

Probier es selbst

-- Schreibe den Code hier
-- 1) definiere first<T>(items: {T}): T? gibt items[1] zurück
-- 2) erstelle fruits: {string}, scores: {number}, flags: {boolean},
--    und ein leeres {string} Array
-- 3) gib first(...) von jedem Array aus, in dieser Reihenfolge
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