Question

Dans Lua, vous pouvez créer une table de la façon suivante:

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

Cependant, je veux créer une table associative, je dois le faire de la manière suivante:

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

Le tableau suivant donne une erreur:

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

Est-il possible de le faire de façon similaire à mon premier extrait de code?

Était-ce utile?

La solution

La bonne façon d'écrire ce soit est

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

Ou, si les clés de votre table ne sont pas des identificateurs juridiques:

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

Autres conseils

i belive cela fonctionne un peu mieux et compréhensible si vous regardez comme ça

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

trouver un résultat avec: tablename.key = valeur

  
    

Tableaux des dictionnaires

  
     

Les tableaux peuvent également être utilisés pour stocker des informations qui ne sont pas indexées   numériquement, ou séquentiellement, comme avec les tableaux. Ces types de stockage sont   parfois appelés dictionnaires, tableaux associatifs, hash, ou la cartographie   les types. Nous allons utiliser le dictionnaire terme où une paire d'éléments a une clé   et une valeur. La clé est utilisée pour définir et récupérer une valeur associée   avec ça. Notez que comme des tableaux, nous pouvons utiliser la table [key] = valeur   format à insérer des éléments dans la table. Une clé ne doit pas être un numéro,   il peut être une chaîne, ou pour cette matière, presque tout autre objet Lua   (À l'exception de zéro ou 0/0). Construisons une table avec une valeur clé   paires dans ce:

     
    

t = {pomme = "vert", orange = "orange", banane = "jaune"}     pour k, v par paires (t) faire impression (k, v) pomme extrémité verte orange orange jaune banane

  

à partir de: http://lua-users.org/wiki/TablesTutorial

Pour initialiser un tableau associatif qui a des touches de chaîne assortis par des valeurs de chaîne, vous devez utiliser

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

mais pas

local petFamilies = {["Bat"]=["Cunning"],["Bear"]=["Tenacity"]};
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top