table只读

 

 1 function tableReadonly(t)
 2     local mt = {
 3         __index = t,
 4         __newindex = function(tb, k, v)
 5             if nil == tb[k] then --允许添加成员
 6                 rawset(tb, k, v)
 7                 return
 8             end
 9             error("只读, 不可修改")
10         end
11     }
12     setmetatable(t, mt)
13 end

# 使用场景,比如使用lua作为配置表, 为了防止手误不小心改了配置表的值而引起bug,可以将配置表包装为只读。

上一篇:正则表达式


下一篇:HDOJ 4417 - Super Mario 线段树or树状数组离线处理..