lua中实现对一个表的监控

Posted 假于物つ点进客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua中实现对一个表的监控相关的知识,希望对你有一定的参考价值。

监控内容:访问表中的元素和更新表中的元素

代码:

 1 local index = {}
 2 
 3 --注意:元表也是表,其中的元素也需要用合理分隔符分开
 4 local mt = 
 5 {
 6     __index = function(t,k)
 7         print("访问元素:" .. tostring(k));
 8         return t[index][k];
 9     end,
10 
11     __newindex = function(t,k,v)
12         print("更新元素: k = ".. tostring(k) .. ", v = " ..tostring(v));
13         t[index][k] = v;
14     end
15 }
16 
17 
18 function Track(t)
19     local proxy = {};
20     proxy[index] = t;
21     setmetatable(proxy,mt);
22     return proxy;
23 end

测试用例:

1 local tab = {a = 12};
2 tab = Track(tab);
3 tab["a"] = 13
4 print(tab["a"])

输出结果:

以上是关于lua中实现对一个表的监控的主要内容,如果未能解决你的问题,请参考以下文章

如何在富编辑控件中实现对 URL 的鼠标单击

如何在 R Shiny 中实现对数据表的内联编辑

如何在安卓开发中实现对listview的增删改查与刷新

如何在 Postgresql 中实现对复杂嵌套 JSONB 的全文搜索

如何在服务器端的 Relay Mutations 中实现对另一个模型的引用?

您如何在Java程序中实现对对象数组的跳转搜索?