在 Hammerspoon 的初始化中,有必要将事件处理程序分配给全局变量吗?

我刚开始使用 Hammerspoon,并编写了一些初始化代码(在 https://gist.github.com/keithrbennett/103f57dfeb0c9346ee817825659fbf5a)。我小心翼翼地避免泄漏全局变量,但一位朋友向我指出了发布在 https://github.com/Hammerspoon/hammerspoon/issues/1103 上的评论,建议这么做。它说:“一般的经验法则是,所有的观察者和计时器都应该被捕获在一个全局变量中...”。当该评论发布于 2016 年时,Lua 的当前版本为 5.3(请参见 https://www.lua.org/versions.html)。至今仍然如此。

将事件处理程序分配给全局变量是有益的吗?我的事件处理程序真的有被垃圾回收的风险吗?如果是这样,这是 Hammerspoon 运行时的一个特性还是一个 bug?(对我来说感觉像是一个 bug。)如果是一个特性,为什么这是合理的呢?

点赞