Lua Leçon 3
Les tables
La seule structure de données de Lua, qui sert à la fois de liste et de dictionnaire.
À la fin de cette leçon, tu sauras
- Créer une table utilisée comme liste
- Créer une table avec des clés (un dictionnaire)
- Parcourir une table avec ipairs et pairs
Une table comme liste
En Lua, tout se range dans des tables, écrites entre accolades.
local armes = { "pistolet", "fusil", "couteau" }
print(armes[1]) -- pistolet
print(#armes) -- 3
table.insert(armes, "grenade")Attention : contrairement à la plupart des langages, les listes Lua commencent à l'indice 1, pas 0. Le # donne la longueur.
Une table avec des clés
local joueur = {
pseudo = "Skap",
niveau = 12,
argent = 2500,
}
print(joueur.pseudo) -- Skap
print(joueur["niveau"]) -- 12
joueur.argent = joueur.argent + 500
joueur.metier = "pompier" -- ajoute une nouvelle cléOn lit une valeur avec table.cle ou table["cle"]. Une clé qui n'existe pas renvoie nil.
Parcourir une table
for i, arme in ipairs(armes) do
print(i .. " : " .. arme)
end
for cle, valeur in pairs(joueur) do
print(cle .. " = " .. tostring(valeur))
endipairsparcourt une liste dans l'ordre, de 1 jusqu'au dernier élément ;pairsparcourt toutes les clés, dans un ordre qui n'est pas garanti ;tostringtransforme n'importe quelle valeur en texte.
À toi de jouer
Crée une table locale vehicule avec trois clés : marque (texte), vitesse (nombre) et places (nombre). Puis parcours-la avec pairs et affiche chaque clé et sa valeur.
main.lua
- La table locale vehicule est créée
- Elle a une clé marque avec un texte
- Elle a des clés vitesse et places avec des nombres
- Une boucle for … in pairs(vehicule) la parcourt
- Chaque clé est affichée avec print
Bravo, toutes les consignes sont réussies !
Bloqué ? Voir une solution
local vehicule = {
marque = "Peugeot",
vitesse = 180,
places = 5,
}
for cle, valeur in pairs(vehicule) do
print(cle .. " : " .. tostring(valeur))
end