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
Czytaj dalej Lua: Operacje na tablicach →