Menu
Coddy logo textTech

Rückblick – Read-Only-Tabelle

Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 23 von 54.

challenge icon

Aufgabe

Einfach

Schreibe 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 __newindex hinzu, 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

Übe selbstständig: Online-Lua-Compiler