variables - 检测变量的变化并做出相应的响应 [Lua]

标签 variables lua

我想检查一个变量并查看它是否发生变化。我知道这可能可以通过循环实现,但我不想使用它们。我希望检查响应的方式是,一旦变量发生变化,我可以相应地选择要使用的函数。

最佳答案

如果你真的希望它是透明的并且不太关心速度和可能破坏的东西,你可以只使用元表:

local name = "proxied" -- The name of your variable
do local proxy
   setmetatable(_G, {
      __index=function(self,idx) if idx==name then return proxy end end;
      __newindex=function(self,idx,val) if idx==name then proxy=val; getmetatable(self).callback(val) else rawset(self,idx,val) end end;
      callback=function(val) print("Proxied variable set to "..tostring(val)) end;
   })
end

请注意,这是

  • 丑陋
  • 易碎
  • 总体来说只是一个坏主意

关于variables - 检测变量的变化并做出相应的响应 [Lua],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59921450/

相关文章:

variables - Objective-c - 全局变量

security - Lua redis 中转加密连接

bash - 局部变量 `unset` 的奇怪行为

PHP访问父类变量

javascript - 安全地将 JS 变量传递给 PHP

lua - 加载文件并返回其环境

python - 随着 Lua 和 Python 的嵌入,是否还有 Basic 的一席之地?

Java,如何通过引用传递

lua - 如何从Lua脚本中确定系统的操作系统?

lua - 在电晕中拖动 loqSprite 对象