Variables 检测变量的变化并相应地响应[Lua]
我想检查一个变量,看看它是否改变。我知道这可能是可行的循环,但我不想使用这些。我希望检查做出响应的方式是,一旦变量发生变化,我可以相应地选择使用哪个函数。据我所知,唯一的方法就是使用循环。不过,您可以这样做:Variables 检测变量的变化并相应地响应[Lua],variables,lua,Variables,Lua,我想检查一个变量,看看它是否改变。我知道这可能是可行的循环,但我不想使用这些。我希望检查做出响应的方式是,一旦变量发生变化,我可以相应地选择使用哪个函数。据我所知,唯一的方法就是使用循环。不过,您可以这样做: var=“你好,世界!” 已更改的\u var=var 函数onChangedVar() --当变量发生变化时,无论您希望发生什么 结束 尽管如此 如果var~=unchanged\u var,则 onChangedVar() 打破 结束 结束 如果您真的希望这是透明的,并且不太关心速度和
var=“你好,世界!”
已更改的\u var=var
函数onChangedVar()
--当变量发生变化时,无论您希望发生什么
结束
尽管如此
如果var~=unchanged\u var,则
onChangedVar()
打破
结束
结束
如果您真的希望这是透明的,并且不太关心速度和可能破坏的东西,您可以使用元表:
local name=“proxied”--变量的名称
做本地代理吗
可设置图元(_G{
__索引=函数(self,idx),如果idx==名称,则返回代理端;
__newindex=function(self,idx,val),如果idx==name,那么proxy=val;getmetatable(self).callback(val)else-rawset(self,idx,val)end;
回调=函数(val)打印(“代理变量设置为“.tostring(val))结束;
})
结束
请注意,这是
- 慢
- 丑陋的
- 易碎的
- 总的来说,这是个坏主意