Menu
Coddy logo textTech

Hinzufügen und Lesen von Elementen

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

Sie vergrößern und verkleinern Lua-Tabellen bereits mit table.insert und table.remove — beide funktionieren bei typisierten Arrays genau gleich. Der Unterschied besteht darin, dass Luau jetzt prüft, was Sie einfügen: Das Pushen eines String in ein {number}-Array wird bereits beim Tippen gemeldet und nicht erst zur Laufzeit von einem verwirrten Spieler entdeckt.

local queue: {string} = {"save", "load"}
table.insert(queue, "quit")      -- am Ende anhängen
table.insert(queue, 1, "help")   -- an Position 1 einfügen und den Rest verschieben
local last = table.remove(queue) -- entfernt UND gibt das letzte Element zurück

table.remove(t) nimmt das letzte Element heraus und gibt es an Sie zurück; table.remove(t, 1) entfernt das erste Element und verschiebt alles nach unten. Da das Array als {string} typisiert ist, weiß Luau, dass der zurückgegebene Wert ein String ist.

Das Lesen ist genauso nachsichtig wie im normalen Lua: Ein Index, der nichts enthält — queue[0], queue[-1] oder alles jenseits von #queue — wird stillschweigend zu nil ausgewertet. Es wird kein Fehler ausgegeben, prüfen Sie also auf nil, bevor Sie einen Wert verwenden, bei dem Sie nicht sicher sind, ob er existiert.

Ein weiteres Werkzeug für Ihren Werkzeugkasten: table.freeze(t) macht eine Tabelle zur Laufzeit schreibgeschützt — jeder spätere Versuch, sie zu ändern, führt zu einem Fehler. Es ist Luaus Antwort für konstante Daten (Konfigurationen, feste Level-Listen), die sich nach der Erstellung niemals ändern dürfen.

challenge icon

Aufgabe

Einfach

Erstelle ein typisiertes Array queue: {string}, initialisiert mit "save" und "load". Dann:

  1. hänge "quit" mit table.insert an
  2. füge "help" an Position 1 ein
  3. entferne den letzten Befehl mit table.remove und speichere den zurückgegebenen Wert

Gib schließlich, jeweils in einer eigenen Zeile, Folgendes aus:

  1. den entfernten Befehl
  2. wie viele Befehle übrig bleiben
  3. den ersten Befehl in der Queue
  4. queue[10] — einen Platz, der nichts enthält

Probier es selbst

-- Schreibe Code hier
-- 1) deklariere queue: {string} mit "save" und "load"
-- 2) hänge "quit" an, füge "help" an Position 1 ein
-- 3) entferne den letzten Befehl, dann gib die vier Werte aus
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