Lua中的弱引用介紹
一個(gè)table的弱引用類型是通過其元素表中的__mode字段來決定的,這個(gè)字段的值應(yīng)為一個(gè)字符串,如果這個(gè)字符串中包含字母'k'/'v'那么這個(gè)table 的value是弱引用,代碼如下:
key = {}
a[key] = 1
key = {}
a[key] = 2
collectgarbage() --強(qiáng)制進(jìn)行一次垃圾收集
for k, v in pairs(a) do
print(v)
end
結(jié)果:2
第二句復(fù)制key = {} 會(huì)覆蓋第一個(gè)key.當(dāng)收集器運(yùn)行時(shí),由于沒有其他地方在引用第一個(gè)key,因此第一個(gè)key就被回收了,并且table中的相應(yīng)條目也被刪除了,至于第二個(gè)key,變量key仍引用它,因此它沒有被回收了
注意,lua只會(huì)回收弱引用table中的對象,而像數(shù)字和bool這樣的值,是不可以回收的。
相關(guān)文章
Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實(shí)例
這篇文章主要介紹了Lua中使用元表(metatable)執(zhí)行算術(shù)類元方法實(shí)例,本文給出了加法、減法、乘法、除法、相反數(shù)、取模等內(nèi)容,需要的朋友可以參考下2014-09-09使用Lua作為C語言項(xiàng)目的配置文件實(shí)例
這篇文章主要介紹了使用Lua作為C語言項(xiàng)目的配置文件實(shí)例,本文用Lua創(chuàng)建了一個(gè)配置文件,然后在C言語中解析它,需要的朋友可以參考下2015-04-04