lua中实现对一个表的监控
监控内容:访问表中的元素和更新表中的元素
代码:
local index = {} --注意:元表也是表,其中的元素也需要用合理分隔符分开 local mt = { __index = function(t,k) print("访问元素:" .. tostring(k)); return t[index][k]; end, __newindex = function(t,k,v) print("更新元素: k = ".. tostring(k) .. ", v = " ..tostring(v)); t[index][k] = v; end } function Track(t) local proxy = {}; proxy[index] = t; setmetatable(proxy,mt); return proxy; end
测试用例:
local tab = {a = 12}; tab = Track(tab); tab["a"] = 13 print(tab["a"])
输出结果: