Menu
CoddyTech

回顾:只读表

本课属于 Coddy Lua 学习旅程的“逻辑与流程”单元。第 23 课,共 54 课。

challenge icon

挑战

简单

编写一个函数 makeReadOnly,它接收 original,并返回一个只读版本的表。

创建一个代理表,并为其设置元表,使其可以读取原始表,但无法进行任何修改。

逻辑:

  • 创建一个空的代理表
  • 创建一个元表,将 __index 设为原始表(以允许读取)
  • 在元表中添加一个什么也不做的 __newindex(以阻止修改)
  • 使用 setmetatable() 将元表附加到代理表
  • 返回代理表

参数:

  • original(表):要保护其免遭修改的表

返回值:一个可只读访问原始表的代理表(表)

亲手试试

function makeReadOnly(original)
    -- 在这里编写代码
end

逻辑与流程中的所有课

自己练习: Lua 在线编译器