Roblox GuidebookWissensbibliothek
Deutsch ⌄

Entwicklung / ROBLOX

Luau-Tabellen: Wegpunkte als Liste und Suche per Schlüssel

Eine Tabelle kann eine Reihenfolge beschreiben, eine andere Stationsdaten nach Namen speichern. Bei einem erfundenen Laternenweg unterscheiden wir Index, Schlüssel und Wert, lesen Einträge und prüfen Positionsänderungen nach Einfügen oder Entfernen.

Aktualisiert:

Zwei Fragen trennen #

Unser Lernweg hat Start, Brückenende und Aussichtspunkt. Welche Station folgt, ist eine Frage; welche Beschreibung zu einer Station gehört, eine andere. Reihenfolge und Informationen hängen zusammen, werden aber als ausdrücklich unterschiedliche Datensätze leichter verständlich.

Verwende routeStart, bridgeEnd und lookout für die geordnete Liste und dieselben Schlüssel für Stationsdaten. Die Namen sind eigene Übungsdaten, keine vorhandenen Spielobjekte. Beim Umordnen muss eine Positionsnummer dadurch nicht zur dauerhaften Identität der Station werden.

Das erste Listenelement lesen #

Geschweifte Klammern erzeugen eine Tabelle. Das erste Beispiel enthält drei aufeinanderfolgende Werte als einfaches Array. route[1] liest Position eins und route[3] Position drei. Luau beginnt solche Listen bei eins; Index null bezeichnet nicht den Anfang.

Sage vor dem Ausführen die Ausgaben routeStart und lookout voraus. Vergleiche Werte, nicht nur das Auftauchen einer Meldung. Die Übung betrifft Daten im Speicher: Sie bewegt keine Figur, erzeugt kein Workspace-Objekt und speichert keinen Weg über Sitzungen hinweg.

Reihenfolge der WegstationenBild in voller Größe öffnen ↗
Eigene Datenskizze: Zahlen sind Positionen, Beschriftungen Bezeichner.
local route = {"routeStart", "bridgeEnd", "lookout"}
print(route[1])
print(route[3])

Informationen per Schlüssel finden #

Im zweiten Beispiel enthält stations benannte Einträge. stations["bridgeEnd"] wählt nach genauem Schlüssel, nicht nach der Position im geschriebenen Tabellentext. Im Eintrag ist title eine Beschriftung für die Übungsausgabe, enabled dagegen ein eigenes Wahrheitsfeld.

Die Verbindung nutzt denselben Bezeichner: ID aus der Liste lesen und stations[ID] suchen. Halte das einfache Array lückenlos. Verwende die Durchlaufreihenfolge eines Wörterbuchs nicht als Route; die separate Liste bestimmt den Ablauf, der Schlüssel bezeichnet den Eintrag.

Fehlend und false unterscheiden #

Ein fehlender Schlüssel ergibt nil. enabled=false speichert dagegen einen vorhandenen Wahrheitswert. Die Station kann gefunden sein, obwohl das Merkmal ausgeschaltet ist. Fehlender Eintrag und vorhandener deaktivierter Eintrag sollen unterschiedliche Beobachtungen ergeben.

Prüfe die Existenz des Eintrags, bevor du Felder liest. Bei unbekannter ID halte eine klare Meldung mit dieser ID fest und stoppe den betreffenden Übungsschritt. Eine beliebige erste Station einzusetzen würde den Datenfehler als erfolgreiche Suche tarnen.

Informationen per SchlüsselBild in voller Größe öffnen ↗
Eigene Suchskizze; keine Figurbewegung dargestellt.
local stations = {
    routeStart = {title = "Start", enabled = true},
    bridgeEnd = {title = "Bridge", enabled = false},
    lookout = {title = "Lookout", enabled = true},
}
local station = stations["bridgeEnd"]
if station == nil then
    print("Missing station")
else
    print(station.title, station.enabled)
end

Eine Zwischenstation einfügen #

Im dritten Beispiel fügt table.insert restSpot an Position zwei ein. bridgeEnd verschiebt sich von zwei auf drei, lookout weiter nach hinten. Vergleiche die Reihenfolge vor und nach dem Schritt. Die Position ändert sich, der Bezeichner bridgeEnd nicht.

Speichert eine spätere Oberfläche nur die Zahl zwei, kann diese nach dem Einfügen eine andere Station meinen. Nutze eine beständige ID zum Benennen und einen Index für die Position. Eine Tabelle entscheidet nicht, wie dein Projekt den ausgewählten Schritt speichern soll.

Entfernen und Positionen neu lesen #

table.remove entfernt an einer angegebenen Position und schiebt folgende Einträge zurück. Die Übung entfernt restSpot an Position zwei und erhält wieder die Ausgangsliste. Prüfe bridgeEnd an zweiter und lookout an dritter Stelle. Eine alte Position ohne erneute Betrachtung kann einen anderen Wert liefern.

Halte das Lernarray zusammenhängend. Ersetze Entfernen nicht durch beliebiges nil in der Mitte und behandle die Länge eines lückenhaften Datensatzes nicht wie die normale Weglänge. Bestimme Einfüge- und Löschregeln, bevor Positionen mit Spielerfortschritt verbunden werden.

local route = {"routeStart", "bridgeEnd", "lookout"}
table.insert(route, 2, "restSpot")
print(route[2])
print(route[3])
table.remove(route, 2)
print(route[2])
print(route[3])

Daten und Spielhandlung trennen #

Die Wegliste beschreibt den Ablauf, der Stationseintrag Daten. Figurbewegung, Hinweis oder Belohnung benötigen eigene Logik, die diese Werte verwendet. Erfolgreiches print beweist weder Objektinteraktion noch Netzwerkverhalten oder dauerhafte Speicherung.

Behalte Übungsbezeichner in allen Übersetzungen bei und übersetze sichtbare Beschriftungen getrennt. Ein nur in einem Datensatz übersetzter technischer Schlüssel unterbricht die Verbindung. Vergleiche IDs mit Einträgen statt mit schönen Bildschirmnamen.

Kleine Datenprüfungen durchführen #

Prüfe erstes Element, bekannten Schlüssel, unbekannte ID, false-Merkmal und Positionen nach Einfügen. Unabhängige Prüfungen erwarteter Werte begleiten die Beispiele. Sie betreffen normale Luau-Tabellen und sind kein Testlauf eines bestehenden Studio-Spiels.

Ergänze einen negativen Fall: eine Weg-ID fehlt in stations. Das Entdecken der Abweichung ist das nützliche Ergebnis, nicht stilles Weitergehen zu einer anderen Station. Notiere problematische ID und zu korrigierenden Datensatz, statt den ganzen Weg sofort umzubauen.

Tabellenreferenzen beachten #

Das Zuweisen einer Tabelle an eine andere Variable erzeugt keine unabhängige Kopie. Ein Name wie backupRoute erhält frühere Inhalte nicht, wenn beide Variablen denselben Datensatz meinen. Trenne deshalb Referenz und tatsächlich vorbereitete Kopie.

Die Beispiele beginnen mit eigenen kleinen Datensätzen. Sie bieten keine allgemeine Kopierlösung für verschachtelte Konfigurationen. Bestimme für eine weitere Aufgabe verschachtelte Inhalte und bewusst gemeinsame Daten; eine flache Kopie ist nicht automatisch auf jeder Ebene unabhängig.

PrüfungErwartung
Erstes ElementAnfang hat Index 1
Bekannter SchlüsselErwarteter Eintrag gefunden
Unbekannter SchlüsselFehlende ID erkannt
Einfügen und EntfernenNeue Positionen geprüft

Die Struktur übergeben #

Der Abschlussvermerk enthält geordnete IDs, Stationsdaten, Feldbedeutungen, Verhalten bei fehlendem Schlüssel und erwartete Positionsänderungen. Nenne separat geprüfte Beispiele und noch nicht an Spielobjekte angeschlossene Teile. Andere erhalten damit eine Datenvereinbarung statt eines Versprechens fertiger Mechanik.

Die offizielle Quelle erklärt Luau-Tabellen; Weg, Schlüssel und Prüfungen sind eigene Lehrbeispiele. Bestehende Spiele wurden nicht geändert. Wegverarbeitung, Interaktionen und Fortschritt können danach als eigenständige Arbeit entstehen, mit klarer Trennung zwischen Daten und wirklich ausgeführten Handlungen.

FeldÜbergeben
ReihenfolgeLückenlose Folge von IDs
SchlüsselBezeichner und Feldbedeutung
FehlendKlare Reaktion auf unbekannte ID
OperationenErwartete Positionsverschiebung

Originalquellen

Roblox Creator Hub — Tables