Ik probeer het equivalent te vinden van:
foo = []
foo << "bar"
foo << "baz"
Ik wil niet met een oplopende index komen. Is er een gemakkelijke manier om dit te doen?
Antwoord 1, autoriteit 100%
U zoekt de functie insert
, te vinden in de sectie table
van de hoofdbibliotheek.
foo = {}
table.insert(foo, "bar")
table.insert(foo, "baz")
Antwoord 2, autoriteit 55%
foo = {}
foo[#foo+1]="bar"
foo[#foo+1]="baz"
Dit werkt omdat de operator #
de lengte van de lijst berekent. De lege lijst heeft lengte 0, enz.
Als je Lua 5.3+ gebruikt, kun je bijna precies doen wat je wilde:
foo = {}
setmetatable(foo, { __shl = function (t,v) t[#t+1]=v end })
_= foo << "bar"
_= foo << "baz"
Uitdrukkingen zijn geen uitspraken in Lua en ze moeten op de een of andere manier worden gebruikt.
Antwoord 3, autoriteit 9%
Ik zou persoonlijk gebruik maken van de functie table.insert
:
table.insert(a,"b");
Hierdoor hoeft u niet de hele tabel te herhalen en bespaart u waardevolle bronnen zoals geheugen en tijd.