Menu
CoddyTech

Generische Arrays

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

Generics werden besonders 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 mit beliebigen Werten, als die sich T 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 Checker leitet T = string ab, sodass das Ergebnis ein String ist. Übergib ein {number}, und das Ergebnis ist eine Zahl. Eine Funktion ersetzt eine ganze Reihe typspezifischer Kopien.

Schau 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, dem du zuvor begegnet bist, sagt das ganz offen: „ein T oder nil“. Der Checker weist Aufrufer darauf hin, den Fall nil zu behandeln, bevor sie das Ergebnis verwenden – genau so fängt eine typisierte Sprache Fehler ab.

challenge icon

Aufgabe

Einfach

Gib das erste Element eines beliebigen Arrays zurück.

  1. Schreibe local function first<T>(items: {T}): T?, das items[1] zurückgibt.
  2. Deklariere local fruits: {string} = {"apple", "banana"} und local empty: {number} = {}.
  3. Gib first(fruits) und danach first(empty) aus.

Drücke auf Code ausführen: Die Ausgabe zeigt apple und nil.

Probier es selbst

-- 1) first<T>(items: {T}): T?
-- 2) fruits: {string} und ein leeres {number}
-- 3) Gib jeweils das erste Element aus

Alle Lektionen in Einführung in Luau

Übe selbstständig: Online-Luau-Compiler