local function tab(t)
local proxy = {}
local mt = {
__index = t,
__newindex = function(t, k, v)
error("attempt to update readonly a table")
end
}
setmetatable(proxy, mt)
return proxy
end
local days = tab({'one', 'two', 'three',})
print(type(days)) -- table
print(days[1]) -- one
for k, v in pairs(days) do
print('k, v:' .. k .. ', ' .. v) -- 什么也不打印
end
days[1] = 'five' -- stdin:attempt to update readonly a table
问题描述:如上,为什么days[1]可以打印而days不能通过pair或者pairs遍历呢,而且days中的元素也不能改变,希望得到大神详解,不甚感激!