Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung |
scripting:tutorials:level1:tables [2023/05/29 11:44] – fritz_98 | scripting:tutorials:level1:tables [2024/05/13 13:26] (aktuell) – fritz_98 |
---|
</code> | </code> |
| |
| Tables, die wie Listen funktionieren, werden auch als //numerische Tables// bezeichnet. |
---- | ---- |
| |
===== Tables als Wörterbücher ===== | ===== Tables als Wörterbücher ===== |
| |
Die andere Art von Tables sind solche, die **Paare** von Variablen einander zuordnet. Wie in einem Wörterbuch kann man in so einem Table für einen gesuchten Wert (Fremdwort, **Schlüsselwert**/**Key**) einen entsprechenden gespeicherten Wert (Wort in der Muttersprache, **Value**) vorfinden. Auch solche Tables werden mit geschweiften Klammern ''{}'' konstruiert. | Die andere Art von Tables sind solche, die **Paare** von Variablen einander zuordnet. Wie in einem Wörterbuch kann man in so einem Table für einen gesuchten Wert (Fremdwort, **Schlüsselwert**/**Key**) einen entsprechenden gespeicherten Wert (Wort in der Muttersprache, **Value**) vorfinden. Auch solche Tables werden mit geschweiften Klammern ''{}'' konstruiert. Im Gegensatz zur numerischen Variante werden diese Tables //assoziative Tables// genannt. |
| |
Dazwischen stehen dann die Werte-Paare. Der Schlüsselwert/**Key** liegt dabei in eckigen Klammern ''[]'' und wird durch ein =-Zeichen mit einem Wert/**Value** assoziiert. Ein sehr kleines Englisch-Deutsch-Wörterbuch sähe zum Beispiel so aus: | Dazwischen stehen dann die Werte-Paare. Der Schlüsselwert/**Key** liegt dabei in eckigen Klammern ''[]'' und wird durch ein =-Zeichen mit einem Wert/**Value** assoziiert. Ein sehr kleines Englisch-Deutsch-Wörterbuch sähe zum Beispiel so aus: |
**Hinweis**: Bei Tables, die Key-Value-Paare benutzen, funktioniert ''table.getn'' nicht! Die Funktion wird für solche Tables immer ''0'' ausgeben. | **Hinweis**: Bei Tables, die Key-Value-Paare benutzen, funktioniert ''table.getn'' nicht! Die Funktion wird für solche Tables immer ''0'' ausgeben. |
| |
**Wichtig**: In Siedler 5 müssen alle **Keys** entweder Strings, Zahlen oder Booleans sein! Andernfalls gehen die Tables beim Speichern und Laden verloren. | **Wichtig**: In Siedler 5 müssen alle **Keys** entweder Strings oder Zahlen sein! Andernfalls gehen die Tables beim Speichern und Laden verloren. |
| |
\\ | \\ |
==== Tables als Werte ==== | ==== Tables als Werte ==== |
| |
Wenn man in einem Table weitere "Untertables" einem Schlüsselwert zuordnet, hat das den Effekt, dass Tables "geschachtelt" werden. Diese Konstruktion wird uns später beispielsweise in Briefings (FIXME link) begegnen. | Wenn man in einem Table weitere "Untertables" einem Schlüsselwert zuordnet, hat das den Effekt, dass Tables "geschachtelt" werden. Diese Konstruktion wird uns später beispielsweise in [[ scripting:tutorials:level1:briefings |Briefings]] begegnen. |
| |
Aus Rollenspielen kennst du vielleicht Charaktereditoren, mit denen man vornehmlich das Gesicht seines Spielcharakters anpassen kann. Die Eigenschaften des Spielcharakters können in einem geschachtelten Table gespeichert werden und so eine übersichtliche Struktur erhalten: | Aus Rollenspielen kennst du vielleicht Charaktereditoren, mit denen man vornehmlich das Gesicht seines Spielcharakters anpassen kann. Die Eigenschaften des Spielcharakters können in einem geschachtelten Table gespeichert werden und so eine übersichtliche Struktur erhalten: |
} | } |
</code> | </code> |
| |
| ---- |
| |
| An dieser Stelle sind die Lua-Inhalte für diese Ebene abgeschlossen. Das nächste Kapitel gibt **wichtige** Konventionen an, //wie// man Lua lesbar aufschreibt. |
| |
| [[ scripting:tutorials:level1:loops | Voriges Kapitel: Schleifen ]]\\ |
| [[ scripting:tutorials:level1:readable_code | Nächstes Kapitel: Gut lesbare Skripte ]]\\ |
| [[ scripting:tutorials:level1:tables | Zurück nach oben ]] |