Lua
ガベージコレクタと弱いテーブル
サーチ…
構文
- collectgarbage(gcrule [、gcdata]) - gcruleを使ってゴミを収集する
- 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