Tabela (table) este singurul mecanism de structurare a datelor din Lua. Ea este extrem de versatilă: dacă este indexată cu numere întregi consecutive pornind de la 1, funcționează ca un tablou secvențial (array / listă); dacă este indexată cu șiruri de caractere sau obiecte, funcționează ca un dicționar asociativ (hashmap).
Liste, dicționare și iterare corectă în Lua
-- 1. Tablou secvențial (Listă) - indexarea începe de la 1:
local limbaje = {"Lua", "Python", "C++", "Rust"}
print("Primul element este:", limbaje[1]) -- "Lua"
print("Numărul total de elemente:", #limbaje) -- 4
-- Iterare secvențială ordonată prin 'ipairs' (se oprește la primul nil):
print("\n--- Iterare cu ipairs ---")
for index, valoare in ipairs(limbaje) do
print(string.format("Index %d: %s", index, valoare))
end
-- 2. Dicționar (Tabel asociativ):
local configurareServer = {
gazda = "127.0.0.1",
port = 8080,
activat = true,
nume = "ServerProducție"
}
-- Accesarea proprietăților prin sintaxa cu punct sau paranteze drepte:
print("Portul serverului:", configurareServer.port)
configurareServer["maxConexiuni"] = 1000
-- Iterare prin toate cheile prin 'pairs' (ordinea nu este garantată):
print("\n--- Iterare cu pairs ---")
for cheie, valoare in pairs(configurareServer) do
print(cheie .. " => " .. tostring(valoare))
end
| Iterator | Tip de tabel vizat | Comportament la parcurgere |
|---|---|---|
ipairs(t) |
Tablouri secvențiale (array-uri indexate numeric 1..n). | Parcurge strict de la 1 în ordine crescătoare; se oprește la prima valoare nil. |
pairs(t) |
Dicționare sau tabele cu chei arbitrare (șiruri, obiecte). | Parcurge toate perechile cheie-valoare din tabela hash în ordine internă nedeterministă. |