Riepilogo - Tabella di sola lettura
Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 23 di 54.
Sfida
FacileScrivi una funzione makeReadOnly che prende original e restituisce una versione di sola lettura della tabella.
Crea una tabella proxy con una metatabella che consenta di leggere dalla tabella originale, ma impedisca qualsiasi modifica.
Logica:
- Crea una tabella proxy vuota
- Crea una metatabella con
__indeximpostato sulla tabella originale (per consentire la lettura) - Aggiungi
__newindexalla metatabella, in modo che non faccia nulla (per bloccare le modifiche) - Collega la metatabella alla tabella proxy usando
setmetatable() - Restituisci la tabella proxy
Parametri:
original(tabella): la tabella da proteggere dalle modifiche
Valori restituiti: una tabella proxy che fornisce accesso in sola lettura alla tabella originale (tabella)
Provalo tu
function makeReadOnly(original)
-- Scrivi il codice qui
end
Tutte le lezioni di Logica e flusso
1Iterazione avanzata delle tabelle
Iterare con pairs()Iterare con ipairs()pairs() vs. ipairs()Riepilogo - Scheda del personaggio4Introduzione alle metatabelle
Che cos’è una metatabella?setmetatable e getmetatableIl metametodo __indexIl metametodo __newindexIl metametodo __tostringMetametodi aritmetici - Parte 1Metametodi aritmetici - Parte 2Riepilogo - Tabella di sola lettura2Altre funzioni della libreria table
table.concat()Costruzione di tabelle e unpack()table.sort()Ordinamento personalizzato con funzioniRiepilogo - Tabellone dei punteggi più altiEsercitati da solo: Compilatore Lua online