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 im Spiel sind. Sie schreiben bereits typisierte Arrays als {number} oder {string} — innerhalb einer generischen Funktion kann der Elementtyp einfach T sein, und {T} bedeutet "ein Array aus was auch immer T am Ende ist".

Hier ist das klassische Beispiel — das Abrufen des ersten Elements eines beliebigen Arrays:

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

Übergeben Sie ein {string} und der Typprüfer leitet T = string ab, sodass das Ergebnis ein String ist. Übergeben Sie ein {number} und es ist eine Zahl. Eine einzige Funktion ersetzt eine ganze Familie von typspezifischen Kopien.

Schauen Sie sich den Rückgabetyp genau an: Es ist T?, nicht T. Ein Array kann leer sein, und dann ist items[1] eben nil — der optionale Typ, den Sie zuvor kennengelernt haben, drückt das ehrlich aus: "ein T oder nil". Der Typprüfer wird den Aufrufer darauf hinweisen, den Fall nil zu behandeln, bevor er das Ergebnis verwendet – was genau das Abfangen von Fehlern ist, das man von einer typisierten Sprache erwartet.

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 mit dem Rückgabetyp T? zurückgibt (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 für jedes Array in dieser Reihenfolge jeweils in einer eigenen Zeile aus.

Probier es selbst

-- Schreibe Code hier
-- 1) definiere first<T>(items: {T}): T? das items[1] zurückgibt
-- 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