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?

War es hilfreich?

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

  

aus: http://lua-users.org/wiki/TablesTutorial

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"]};
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top