Ricerca…


Sintassi

  1. collectgarbage (gcrule [, gcdata]): raccoglie i rifiuti usando gcrule
  2. setmetatable (tab, {__mode = weakmode}) - imposta la modalità debole della scheda su weakmode

Parametri

parametro dettagli
gcrule e gcdata Azione su gc (garbage collector): "stop" (interruzione della raccolta), "restart" (ricomincia a raccogliere), "collect" o nil (raccogli tutti i rifiuti), "step" (esegui un passo di raccolta), "count" ( conteggio di ritorno della memoria utilizzata in KB), "setpause" e dati sono numeri da 0 % a 100 % (imposta il parametro di pausa di gc), "setstepmul" ei dati sono numeri da 0 % a 100 (imposta "stepmul" per gc) .
weakmode Tipo di tabella debole: "k" (solo chiavi deboli), "v" (solo valori deboli), "vk" (chiavi e valori deboli)

Tavoli deboli

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow