lua 元表__index 元方法应用1

 1 --普通表
 2 local tab = {1,2,3}
 3 
 4 --元表
 5 local meta = {
 6     insert = function(t,v) 
 7         --监测表增加成员
 8         print("增加一个值",v)
 9         table.insert(t,v) 
10     end,
11     remove = function(t,i) 
12         --监测表删除成员
13         print("删除一个值",t[i])
14         table.remove(t,i) 
15     end
16 }
17 
18 
19 setmetatable(tab,{
20     __index = meta,
21     __tostring = function(t) return table.concat(t,",") end
22 })
23 
24 tab.insert(tab,4)
25 print(tab)
26 tab.insert(tab,5)
27 print(tab)
28 tab.remove(tab,1)
29 print(tab)
30 tab.remove(tab,1)
31 print(tab)

 

posted @ 2024-05-26 18:18  Axuanup  阅读(2)  评论(0编辑  收藏  举报