サーチ…


構文

  1. collectgarbage(gcrule [、gcdata]) - gcruleを使ってゴミを収集する
  2. setmetatable(タブ、{__mode =弱モード}) - タブの弱モードを弱モードに設定する

パラメーター

パラメータ詳細
gcrule&gcdata gc(ガベージコレクタ)へのアクション: "stop" (収集停止)、 "restart""restart"収集開始)、 "collect"またはnil (すべてのゴミ収集)、 "step" (収集ステップを実行)、 "count" KBのに使用されるメモリ)のカウントを返す、 "setpause"とデータの数であり、 0 %と100 %(GCの組ポーズパラメータが)、 "setstepmul"とデータから数である0 %と100 (設定"stepmul" )GCに。
弱いモード弱い表のタイプ: "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