首页 新闻 会员 周边

lua weak引用 垃圾回收问题!

0
悬赏园豆:20 [待解决问题]

1.附上代码(1)

local a = {}

local b = { __mode = "k" }

setmetatable(a,b)

local key = {}

a[key] = 1

local key = {}

a[key] = 2

collectgarbage()

for i ,v in pairs(a) do
print("xxxxx",i,v)
end

输出结果: 

Lua print: xxxxx table: 00D5D930 1
Lua print: xxxxx table: 00D5D978 2

为什么垃圾回收没有成功?

2.附上代码(2)

local a = {}

local b = { __mode = "k" }

setmetatable(a,b)

l key = {}

a[key] = 1

 key = {}


a[key] = 2

collectgarbage()

for i ,v in pairs(a) do
print("xxxxx",i,v)
end

输出结果:

Lua print: xxxxx table: 00D5DA30 2

垃圾回收却成功了,弄不明白为什么了?那位大神帮忙分析为什么?

还有这个lua垃圾回收的原理。谢谢

lua
Changing_Always的主页 Changing_Always | 初学一级 | 园豆:182
提问于:2013-04-07 12:18
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册