Recapitulação - Tabela Somente Leitura
Parte da seção Logic & Flow do Journey de Lua da Coddy — lição 23 de 54.
Desafio
FácilEscreva uma função makeReadOnly que receba original e retorne uma versão somente leitura da tabela.
Crie uma tabela proxy com uma metatabela que permita a leitura da tabela original, mas impeça quaisquer modificações.
Lógica:
- Crie uma tabela proxy vazia
- Crie uma metatabela com
__indexdefinido para a tabela original (para permitir a leitura) - Adicione
__newindexà metatabela que não faz nada (para bloquear modificações) - Anexe a metatabela ao proxy usando
setmetatable() - Retorne a tabela proxy
Parâmetros:
original(table): A tabela a ser protegida contra modificações
Retorna: Uma tabela proxy que fornece acesso somente leitura à tabela original (table)
Experimente você mesmo
function makeReadOnly(original)
-- Escreva o código aqui
end
Todas as lições de Logic & Flow
1Iteração Avançada de Tabelas
Iterando com pairs()Iterando com ipairs()pairs() vs. ipairs()Revisão - Ficha de Personagem4Introdução às Metatabelas
O que é uma Metatabela?setmetatable & getmetatableO Metamétodo __indexO Metamétodo __newindexO Metamétodo __tostringMetamétodos Aritméticos Parte 1Metamétodos Aritméticos Parte 2Recapitulação - Tabela Somente Leitura2Mais Funções da Biblioteca Table
table.concat()Construção de tabelas e unpack()table.sort()Ordenação personalizada com funçõesRecapitulação - Placar de recordes