我正在使用日志更新等一些高级功能编写用于登录Lua的库。纯Lua有退出事件吗?我将在进程退出后使用它来避免光标隐藏。
答案 0 :(得分:4)
正如Egor在评论中所写,你可以使用__gc
元方法来捕捉Lua 5.2+中最终垃圾收集的事件;你需要在Lua 5.1中使用未记录的newproxy
。以下代码应该适用于Lua 5.1及更高版本的解释器:
local m = {onexit = function() print("exiting...") end}
if _VERSION >= "Lua 5.2" then
setmetatable(m, {__gc = m.onexit})
else
m.sentinel = newproxy(true)
getmetatable(m.sentinel).__gc = m.onexit
end