Lua
Vuilnisman en zwakke tafels
Zoeken…
Syntaxis
- verzamelafval (gcrule [, gcdata]) - verzamel afval met behulp van gcrule
- setmetatable (tab, {__mode = weakmode}) - stel de zwakke modus van het tabblad in op de zwakke modus
parameters
parameter | gegevens |
---|---|
gcrule & gcdata | Actie voor gc (vuilnisman): "stop" (stop met verzamelen), "restart" (opnieuw beginnen met verzamelen), "collect" of nil (verzamel alle afval), "step" (voer een verzamelstap uit), "count" ( teruggegeven aantal gebruikt geheugen in KB's), "setpause" en data is nummer van 0 % tot 100 % (set pause parameter van gc), "setstepmul" en data is nummer van 0 % tot 100 (set "stepmul" voor gc) . |
weakmode | Type zwakke tabel: "k" (alleen zwakke toetsen), "v" (alleen zwakke waarden), "vk" (zwakke toetsen en waarden) |
Zwakke tafels
local t1, t2, t3, t4 = {}, {}, {}, {} -- Create 4 tables
local maintab = {t1, t2} -- Regular table, strong references to t1 and t2
local weaktab = setmetatable({t1, t2, t3, t4}, {__mode = 'v'}) -- table with weak references.
t1, t2, t3, t4 = nil, nil, nil, nil -- No more "strong" references to t3 and t4
print(#maintab, #weaktab) --> 2 4
collectgarbage() -- Destroy t3 and t4 and delete weak links to them.
print(#maintab, #weaktab) --> 2 2
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow