Lua中只读表和只允许修改表
Lua中的table表非常灵活强大,可以随时加入和修改,但有时在多人协作和
一些项目中有些凌乱,我们可以利用元表的性质来保护我们的一些表格。
1.Lua中的只读表
function ReadOnlyTable (t) local proxy = {} local mt = { __index = t, __newindex = function (t,k,v) error("attempt to update a read-only talbe",2) end } setmetatable(proxy,mt) return proxy
2.只允许查改操作的表
1 local function ReadUpdateOnly (t) 2 local proxy = t or {} 3 local mt = { 4 __newindex = function (t,k,v) 5 error("只能初始化时对该表定义",2) 6 end 7 } 8 setmetatable(proxy,mt) 9 return proxy 10 end