我正在编写用于LUA登录的库,其中具有一些高级功能,例如日志更新。纯Lua中有任何退出事件吗?我将使用它来避免流程退出后的光标皮。
正如Egor在评论中所写的那样,您可以使用__gc
MetAmethod来捕获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