回顾:只读表
本课属于 Coddy Lua 学习旅程的“逻辑与流程”单元。第 23 课,共 54 课。
挑战
简单编写一个函数 makeReadOnly,它接收 original,并返回一个只读版本的表。
创建一个代理表,并为其设置元表,使其可以读取原始表,但无法进行任何修改。
逻辑:
- 创建一个空的代理表
- 创建一个元表,将
__index设为原始表(以允许读取) - 在元表中添加一个什么也不做的
__newindex(以阻止修改) - 使用
setmetatable()将元表附加到代理表 - 返回代理表
参数:
original(表):要保护其免遭修改的表
返回值:一个可只读访问原始表的代理表(表)
亲手试试
function makeReadOnly(original)
-- 在这里编写代码
end
逻辑与流程中的所有课
自己练习: Lua 在线编译器