Lua
Śmieciarka i słabe stoły
Szukaj…
Składnia
- collectgarbage (gcrule [, gcdata]) - zbieraj śmieci za pomocą gcrule
- setmetatable (tab, {__mode = poormode}) - ustaw słaby tryb tab na tryb słaby
Parametry
parametr | Detale |
---|---|
gcrule & gcdata | Działanie do gc (garbage collector): "stop" (przestań zbierać), "restart" (zacznij ponownie "collect" ), "collect" lub nil (zbierz wszystkie śmieci), "step" (wykonaj jeden krok zbierania), "count" ( zwracana liczba użytej pamięci w KB), "setpause" a dane to liczba od 0 % do 100 % (ustaw parametr pauzy gc), "setstepmul" a dane to liczba od 0 % do 100 (ustaw "stepmul" dla gc) . |
słaby tryb | Rodzaj słabej tabeli: "k" (tylko słabe klucze), "v" (tylko słabe wartości), "vk" (słabe klucze i wartości) |
Słabe stoły
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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow