Lua 垃圾收集器-__gc元方法
示例
lua中的对象被垃圾收集。有时,您需要释放一些资源,打印消息或在销毁(收集)对象时执行其他操作。为此,您可以使用元__gc方法,当对象被销毁时,该元方法将以对象作为参数进行调用。您可能会将此元方法视为一种析构函数。
此示例显示了__gc运行中的元方法。当分配给的内部表t被垃圾收集时,它将在被收集之前打印一条消息。同样,对于到达脚本末尾的外部表:
local meta = { __gc = function(self) print("破坏自我: " .. self.name) end } local t = setmetatable({ name = "outer" }, meta) do local t = { name = "inner" } setmetatable(t, meta) end