Lua
Recolector de basura y mesas débiles.
Buscar..
Sintaxis
- collectgarbage (gcrule [, gcdata]) - recolecta basura usando gcrule
- setmetatable (tab, {__mode = weakmode}) - establece el modo débil de tabulación en modo débil
Parámetros
parámetro | detalles |
---|---|
gcrule & gcdata | Acción a gc (recolector de basura): "stop" (dejar de recolectar), "restart" (comenzar a recolectar nuevamente), "collect" o nil (recolectar toda la basura), "step" (hacer un paso de recolección), "count" ( devuelva el recuento de la memoria utilizada en KBs), "setpause" y los datos son números del 0 % al 100 % (establecer el parámetro de pausa de gc), "setstepmul" y los datos son números del 0 % al 100 (establecer "stepmul" para gc) . |
modo débil | Tipo de tabla débil: "k" (solo claves débiles), "v" (solo valores débiles), "vk" (claves débiles y valores) |
Mesas débiles
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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow