lua - 创建只读表

    技术2023-08-04  101

    通过lua本身的元表和元方法,加上代理的思想实现。

    具体如下

    function errorHandle(str) print("=================LUA ERROR:=================") if str then print(str) print("--------------------------------------------") end print(debug.traceback()) print("--------------------------------------------") end function readOnly(t) local proxy = {} local mt = { __index = t, __newindex = function (t, k, v) errorHandle("attempt to update a read-only table") end } setmetatable(proxy, mt) return proxy end function mainFunc() local days = readOnly{"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"} print(days[1]) days[2] = "Noday" end xpcall(mainFunc, errorHandle)

     

    Processed: 0.008, SQL: 9