Kolejna ściągawka składniowa.
Zadeklarowanie tablicy:
NazwaZmiennej = {}
Zadeklarowanie tablicy z początkowymi danymi:
NazwaZmiennej = {"tekst 1", 3, InnaTablica= {"pole w innej tablicy","drugie pole w innej tablicy"},"kolejny napis w glownej tablicy"}
Push:
a = {} table.insert(a,"jakiś tekst")
Pop:
table.remove(a,1)
Ile elementów ma tablica?
print(table.getn{10,2,4}) -- 3 print(table.getn{10,2,nil}) -- 2 print(table.getn{10,2,nil; n=3}) -- 3 print(table.getn{n=1000}) -- 1000 a = {} print(table.getn(a)) -- 0 table.setn(a, 10000) print(table.getn(a)) -- 10000 a = {n=10} print(table.getn(a)) -- 10 table.setn(a, 10000) print(table.getn(a)) -- 10000
inną opcją jest użycie operatora #. Ma on jednak jedną wadę! Nie liczy, tylko wyświetla wartość najwyższego indeksu:
t = {"a", "b", "c"} = #t 3
Pętla po parach w tablicy:
t = {"a", "b", [123]="foo", "c", name="bar", "d", "e"} for k,v in pairs(t) do print(k,v) end 1 a 2 b 3 c 4 d 5 e 123 foo name bar
można też wykorzystać ipairs. Gwarantuje to, że zawsze otrzymamy rekordy w poprawnej kolejności. To rozwiązanie wyświetla jednak tabelę tylko po indeksach, nie po kluczach.
t = {"a", "b", "c"} for i, v in ipairs(t) do print(i, v) end 1 a 2 b 3 c