Menu
CoddyTech

Ôn tập: bảng chỉ đọc

Thuộc phần Logic và luồng chương trình trong hành trình Lua của Coddy. Bài học 23 trên 54.

challenge icon

Thử thách

Dễ

Viết một hàm makeReadOnly nhận original và trả về một phiên bản chỉ đọc của bảng.

Tạo một bảng proxy có metatable cho phép đọc từ bảng gốc nhưng ngăn mọi sửa đổi.

Logic:

  • Tạo một bảng proxy trống
  • Tạo một metatable có __index trỏ đến bảng gốc (để cho phép đọc)
  • Thêm __newindex vào metatable và để nó không làm gì (để chặn sửa đổi)
  • Gắn metatable vào proxy bằng setmetatable()
  • Trả về bảng proxy

Tham số:

  • original (table): Bảng cần bảo vệ khỏi các sửa đổi

Giá trị trả về: Một bảng proxy cho phép chỉ đọc bảng gốc (table)

Tự làm thử

function makeReadOnly(original)
    -- Viết code ở đây
end

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Lua online