Wie schnell ein assoziatives Tabelle in Lua initialisieren?
-
21-08-2019 - |
Frage
In Lua können Sie eine Tabelle mit der folgenden Art und Weise erstellen:
local t = { 1, 2, 3, 4, 5 }
Allerdings mag ich eine assoziative Tabelle erstellen, ich habe es die folgende Art und Weise zu tun:
local t = {}
t['foo'] = 1
t['bar'] = 2
Im Folgenden erhalten Sie einen Fehler:
local t = { 'foo' = 1, 'bar' = 2 }
Gibt es eine Möglichkeit, es ähnlich zu meinem ersten Code-Schnipsel zu tun?
Lösung
Der richtige Weg, dies zu schreiben, ist entweder
local t = { foo = 1, bar = 2}
oder, wenn der Schlüssel in der Tabelle sind keine Rechte Bezeichner:
local t = { ["one key"] = 1, ["another key"] = 2}
Andere Tipps
i belive es funktioniert etwas besser und verständlich, wenn man es so aussehen
local tablename = {["key"]="value",
["key1"]="value",
...}
zu finden, ein Ergebnis mit: tablename.key = Wert
Tabellen als Wörterbücher
Tabellen können auch zum Speichern von Informationen verwendet werden, die nicht indiziert numerisch, oder nacheinander, wie bei Arrays. Diese Speichertypen sind manchmal genannt Wörterbücher, assoziative Arrays, Hashes, oder Mapping Typen. Wir werden den Begriff Wörterbuch verwenden, wo ein Element Paar hat einen Schlüssel und ein Wert. Der Schlüssel wird verwendet, um einen Wert, der eingestellt und Abrufen damit. Beachten Sie, dass nur wie Arrays wir die Tabelle verwenden können [key] = Wert Formatelemente in die Tabelle einfügen. Ein Schlüssel muss nicht eine Zahl sein, es kann eine Zeichenfolge, oder für diese Angelegenheit sein, fast jede andere Lua Objekt (Mit Ausnahme von Null oder 0/0). Lassen Sie uns einen Tisch mit einigen Schlüssel-Wert-Konstrukt Paare in ihm:
t = {apple = "green", orange = "orange", Banane = "yellow"} für k, v in Paaren (t) druckte (k, v) Ende apfelgrün orange orange Banane gelb
assoziatives Array zu initialisieren, die von String-Werten angepasst String-Schlüssel hat, sollten Sie verwenden
local petFamilies = {["Bat"]="Cunning",["Bear"]="Tenacity"};
und nicht
local petFamilies = {["Bat"]=["Cunning"],["Bear"]=["Tenacity"]};