Lua
Сборщик мусора и слабые столы
Поиск…
Синтаксис
- collectgarbage (gcrule [, gcdata]) - собирать мусор, используя gcrule
- setmetatable (tab, {__mode = weakmode}) - установить слабый режим вкладки в слабом режиме
параметры
параметр | подробности |
---|---|
gcrule & gcdata | Действие для gc (сборщик мусора): "stop" (остановить сбор), "restart" (начать собирать снова), "collect" или « nil (собрать весь мусор), "step" (сделать один шаг сбора), "count" ( return count of used memory в KBs), "setpause" и данные - от 0 % до 100 % (параметр установки паузы в gc), "setstepmul" а данные - от 0 % до 100 (установите "stepmul" для gc) , |
weakmode | Тип слабой таблицы: "k" (только слабые клавиши), "v" (только слабые значения), "vk" (слабые клавиши и значения) |
Слабые столы
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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow