Lua:退出事件

Mal*_*gor 4 logging lua exit

我正在编写用于登录Lua的库,其中包含一些高级功能,例如日志更新。纯Lua中有退出事件吗?我将使用它来避免进程退出后出现光标隐藏。

Pau*_*nko 5

正如Egor在评论中所写,您可以使用__gcmetamethod来捕获Lua 5.2+中最终垃圾收集的事件。您将需要使用newproxyLua 5.1中未记录的内容。以下代码应在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
Run Code Online (Sandbox Code Playgroud)