lua中对象的弱引用

几次编写lua时。总是有同事遇到A中对象已经释放了。但B对象中A对象的值不是为空的。
Lua的gc和Java的类似。只有当对象没有被引用时候才会释放这块内存。要想实现A释放了B中A的值也释放了这时候需要用到弱引用。

setmetatable(t,{__mode="k"});

__mode 的值可以为"k","v","kv"

 



~ ~第一段代码中可以看到内存中是有一个[key]保存了一个table。虽然b=nil了但是t中还是存在了这一个条目。
~ ~第二段代码中可以看到[key]不在拥有table了。

posted @ 2015-05-24 14:26  leejuen  阅读(211)  评论(0编辑  收藏  举报