Если вы действительно хотите, чтобы это было прозрачным и не слишком заботились о скорости и, возможно, поломках, вы можете просто использовать метатаблицы:
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
Обратите внимание, что это это
- Медленно
- Гадкий
- Хрупкий
- Просто плохая идея в целом