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"])输出结果:
