Rückblick – Read-Only-Tabelle
Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 23 von 54.
Aufgabe
EinfachSchreibe eine Funktion makeReadOnly, die original entgegennimmt und eine schreibgeschützte Version der Tabelle zurückgibt.
Erstelle eine Proxy-Tabelle mit einer Metatabelle, die das Lesen aus der ursprünglichen Tabelle erlaubt, aber Änderungen verhindert.
Logik:
- Erstelle eine leere Proxy-Tabelle
- Erstelle eine Metatabelle mit
__index, das auf die ursprüngliche Tabelle gesetzt ist (um das Lesen zu ermöglichen) - Füge der Metatabelle
__newindexhinzu, das nichts tut (um Änderungen zu blockieren) - Verknüpfe die Metatabelle mithilfe von
setmetatable()mit der Proxy-Tabelle - Gib die Proxy-Tabelle zurück
Parameter:
original(Tabelle): Die Tabelle, die vor Änderungen geschützt werden soll
Rückgabe: Eine Proxy-Tabelle, die schreibgeschützten Zugriff auf die ursprüngliche Tabelle ermöglicht (Tabelle)
Probier es selbst
function makeReadOnly(original)
-- Schreibe hier den Code
end
Alle Lektionen in Logik & Programmablauf
1Fortgeschrittene Tabelleniteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen4Einführung in Metatables
Was ist eine Metatable?setmetatable & getmetatableDie __index-MetamethodeDie __newindex-MetamethodeDie __tostring-MetamethodeArithmetische Metamethoden Teil 1Arithmetische Metamethoden Teil 2Rückblick – Read-Only-Tabelle2Weitere Funktionen der Tabellenbibliothek
table.concat()Tabellenkonstruktion & unpack()table.sort()Eigene Sortierung mit FunktionenRückblick – Highscore-TabelleÜbe selbstständig: Online-Lua-Compiler