Domanda

In Lua, è possibile creare una tabella seguente modo:

local t = { 1, 2, 3, 4, 5 }

Tuttavia, voglio creare una tabella associativa, devo farlo nel modo seguente:

local t = {}
t['foo'] = 1
t['bar'] = 2

Di seguito dà un errore:

local t = { 'foo' = 1, 'bar' = 2 }

C'è un modo per farlo in modo simile al mio primo frammento di codice?

È stato utile?

Soluzione

Il modo corretto di scrivere questo è o

local t = { foo = 1, bar = 2}

In alternativa, se le chiavi nella tabella non sono identificatori di legge:

local t = { ["one key"] = 1, ["another key"] = 2}

Altri suggerimenti

I belive che funziona un po 'meglio e comprensibile se si guarda a come questo

local tablename = {["key"]="value",
                   ["key1"]="value",
                   ...}

trovare un risultato con: tablename.key = valore

  
    

tabelle come dizionari

  
     

Le tabelle possono anche essere utilizzati per memorizzare informazioni che non è indicizzato   numericamente, o in sequenza, come con gli array. Questi tipi di archiviazione sono   a volte chiamati dizionari, array associativi, hash, o la mappatura   tipi. Useremo il dizionario termine in cui una coppia elemento ha una chiave   e un valore. La chiave viene utilizzato per impostare e recuperare un valore associato   con esso. Nota che, proprio come gli array possiamo usare la tabella [tasto] = valore   formato inserire gli elementi nella tabella. Una chiave non deve essere un numero,   può essere una stringa, o per quella materia, praticamente qualsiasi altro oggetto Lua   (Tranne che per nulla o 0/0). Costruiamo una tabella con un valore-chiave   coppie in esso:

     
    

t = {mela = "verde", arancione = "orange", banana = "yellow"}     per k, v in coppia (t) do di stampa (k, v) fine mela arancio verde arancio giallo banana

  

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

Per inizializzare array associativo che ha le chiavi stringa corrispondente valori di stringa, è necessario utilizzare

local petFamilies = {["Bat"]="Cunning",["Bear"]="Tenacity"};

ma non

local petFamilies = {["Bat"]=["Cunning"],["Bear"]=["Tenacity"]};
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top