복습 - 읽기 전용 테이블
Coddy Lua 여정의 Logic & Flow 섹션에 포함된 레슨 — 54개 중 23번째.
챌린지
쉬움original을 인자로 받아 해당 테이블의 읽기 전용 버전을 반환하는 makeReadOnly 함수를 작성하세요.
원본 테이블에서 읽기는 허용하지만 수정은 방지하는 메타테이블을 가진 프록시 테이블을 생성하세요.
로직:
- 비어 있는 프록시 테이블을 생성합니다.
- 읽기를 허용하기 위해
__index가 원본 테이블로 설정된 메타테이블을 생성합니다. - 수정을 차단하기 위해 아무 작업도 수행하지 않는
__newindex를 메타테이블에 추가합니다. setmetatable()을 사용하여 메타테이블을 프록시에 연결합니다.- 프록시 테이블을 반환합니다.
매개변수:
original(table): 수정으로부터 보호할 테이블
반환값: 원본 테이블에 대한 읽기 전용 액세스를 제공하는 프록시 테이블 (table)
직접 해보기
function makeReadOnly(original)
-- 여기에 코드를 작성하세요
end