Lua
Müllsammler und schwache Tische
Suche…
Syntax
- Müll sammeln (gcrule [, gcdata]) - sammle Müll mit gcrule
- setmetatable (tab, {__mode = schwacher Modus}) - setzt den schwachen Modus des Tab auf den schwachen Modus
Parameter
Parameter | Einzelheiten |
---|---|
gcrule & gcdata | Aktion für gc (Garbage Collector): "stop" (Sammeln stoppen), "restart" (erneutes Sammeln "restart" ), "collect" oder nil (Sammeln aller Abfälle), "step" (einen Sammlungsschritt ausführen), "count" ( Liefert die Anzahl des verwendeten Speichers in KB), "setpause" und Daten sind Zahlen von 0 % bis 100 % (Pausenparameter von gc einstellen), "setstepmul" und Daten sind Zahlen von 0 % bis 100 ( "stepmul" für gc setzen) . |
Schwachmodus | Art der schwachen Tabelle: "k" (nur schwache Schlüssel), "v" (nur schwache Werte), "vk" (schwache Schlüssel und Werte) |
Schwache Tische
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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow