Resumen - Tablas de solo lectura
Parte de la sección Logic & Flow del Journey de Lua de Coddy — lección 23 de 54.
Desafío
FácilEscribe una función makeReadOnly que tome original y devuelva una versión de solo lectura de la tabla.
Crea una tabla proxy con una metatabla que permita leer de la tabla original pero impida cualquier modificación.
Lógica:
- Crea una tabla proxy vacía
- Crea una metatabla con
__indexestablecido en la tabla original (para permitir la lectura) - Agrega
__newindexa la metatabla que no haga nada (para bloquear modificaciones) - Adjunta la metatabla al proxy usando
setmetatable() - Devuelve la tabla proxy
Parámetros:
original(table): La tabla a proteger de modificaciones
Devuelve: Una tabla proxy que proporciona acceso de solo lectura a la tabla original (table)
Pruébalo tú mismo
function makeReadOnly(original)
-- Escribe el código aquí
end
Todas las lecciones de Logic & Flow
1Iteración avanzada de tablas
Iterar con pairs()Iterar con ipairs()pairs() vs. ipairs()Resumen - Ficha de personaje4Introducción a las Metatablas
¿Qué es una Metatabla?setmetatable y getmetatableEl metamétodo __indexEl metamétodo __newindexEl metamétodo __tostringMetamétodos aritméticos - Parte 1Metamétodos aritméticos - Parte 2Resumen - Tablas de solo lectura2Más funciones de la librería table
table.concat()Construcción de tablas y unpack()table.sort()Ordenamiento personalizado con funcionesRepaso - Tabla de puntuaciones altas