我们只管创建对象,无须删除对象,Lua会自动删除那些被认为是垃圾的对象。问题就出现在,什么对象才是垃圾对象,有些时候,我们很清楚某个对象是垃圾,但是,Lua却无法发现。这段代码有点复杂,智商低于250的可能会看不懂。然后创建一个新的table――key1,这个key1作为t的key值,给t新增了一个字段,赋值为1。换句话说,key1本身已经是nil值,但它曾经所指向的内容依然存放在t中。key2也是一样的情况。所以我们最后还是能输出key1和key2的name字段。随后,又执行了key1 = nil,此时,除了t本身以外,就没有任何地方对key1保持引用,所以t的key1字段也会被删除。关于Lua的最基础部分,到这里算是结束了。

Lua教程之弱引用table

Lua教程之弱引用table

Lua教程之弱引用table