Lua
Soporuppsamlare och svaga bord
Sök…
Syntax
- collectgarbage (gcrule [, gcdata]) - samla sopor med gcrule
- setmetatable (tab, {__mode = weakmode}) - ställa in svagt läge för fliken till weakmode
parametrar
parameter | detaljer |
---|---|
gcrule & gcdata | Åtgärd för gc (sopsamlare): "stop" (sluta samla), "restart" (börja samla in igen), "collect" eller nil (samla allt skräp), "step" (gör ett insamlingssteg), "count" ( returtal för använt minne i KBs, "setpause" och data är nummer från 0 % till 100 % (ställ in pausparameter för gc), "setstepmul" och data är nummer från 0 % till 100 (ställ in "stepmul" för gc) . |
weakmode | Typ av svag tabell: "k" (endast svaga tangenter), "v" (endast svaga värden), "vk" (svaga tangenter och värden) |
Svaga bord
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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow