Menu
Coddy logo textTech

Zusammenfassung – Schreibgeschützte Tabellen

Teil des Abschnitts Logic & Flow der Lua-Journey von Coddy — Lektion 23 von 54.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Funktion makeReadOnly, die original entgegennimmt und eine schreibgeschützte Version der Tabelle zurückgibt.

Erstellen Sie eine Proxy-Tabelle mit einer Metatabelle, die das Lesen aus der ursprünglichen Tabelle ermöglicht, aber jegliche Änderungen verhindert.

Logik:

  • Erstellen Sie eine leere Proxy-Tabelle
  • Erstellen Sie eine Metatabelle, bei der __index auf die ursprüngliche Tabelle gesetzt ist (um das Lesen zu ermöglichen)
  • Fügen Sie __newindex zur Metatabelle hinzu, die nichts tut (um Änderungen zu blockieren)
  • Verknüpfen Sie die Metatabelle mit dem Proxy unter Verwendung von setmetatable()
  • Geben Sie die Proxy-Tabelle zurück

Parameter:

  • original (table): Die Tabelle, die vor Änderungen geschützt werden soll

Rückgabewert: Eine Proxy-Tabelle, die schreibgeschützten Zugriff auf die ursprüngliche Tabelle bietet (table)

Probier es selbst

function makeReadOnly(original)
    -- Schreibe hier den Code
end

Alle Lektionen in Logic & Flow