Lua中的弱引用介紹
更新時間:2015年04月22日 11:32:30 投稿:junjie
這篇文章主要介紹了Lua中的弱引用介紹,本文用一個實例講解了Lua弱引用的相關知識,需要的朋友可以參考下
一個table的弱引用類型是通過其元素表中的__mode字段來決定的,這個字段的值應為一個字符串,如果這個字符串中包含字母'k'/'v'那么這個table 的value是弱引用,代碼如下:
復制代碼 代碼如下:
key = {}
a[key] = 1
key = {}
a[key] = 2
collectgarbage() --強制進行一次垃圾收集
for k, v in pairs(a) do
print(v)
end
結果:2
第二句復制key = {} 會覆蓋第一個key.當收集器運行時,由于沒有其他地方在引用第一個key,因此第一個key就被回收了,并且table中的相應條目也被刪除了,至于第二個key,變量key仍引用它,因此它沒有被回收了
注意,lua只會回收弱引用table中的對象,而像數(shù)字和bool這樣的值,是不可以回收的。
您可能感興趣的文章:
相關文章
Lua中使用元表(metatable)執(zhí)行算術類元方法實例
這篇文章主要介紹了Lua中使用元表(metatable)執(zhí)行算術類元方法實例,本文給出了加法、減法、乘法、除法、相反數(shù)、取模等內容,需要的朋友可以參考下2014-09-09