首页 > 解决方案 > 垃圾收集到表

问题描述

我想知道从垃圾收集中收集所有内容并将其放入表中进行排序的最佳方法是什么。

function CollectGarbageCollection()
  return collectgarbage();
end

for i,v in next, CollectGarbageCollection() do
    print(i,v) -- Data from Garbage Collection
end

上面的代码只是一个例子。

标签: lua

解决方案


你不能。垃圾收集的全部意义在于,在它们被收集之后,对象就消失了。您可以将元方法添加到您自己的对象中,当它们被垃圾收集时触发,仅此而已。


编辑:从技术上讲,你可以构建一个补丁版本的 Lua,每次收集一个对象时都会触发一些钩子,就在它的元方法之前__gc,但这将是一堆工作。


推荐阅读