Menu
Coddy logo textTech

Tabellen mit Funktionen

Teil des Abschnitts Objektorientierte Programmierung der Lua-Journey von Coddy — Lektion 1 von 70.

In Lua sind Tabellen unglaublich vielseitig. Über das Speichern von Daten hinaus können sie auch Funktionen enthalten. Dies ermöglicht es Ihnen, zusammengehörige Operationen zu gruppieren, wodurch Ihr Code organisiert und einfach zu verwalten bleibt.

Um eine Funktion in eine Tabelle einzufügen, weisen Sie sie einfach einem Schlüssel zu, genau wie jeden anderen Wert:

local myTable = {
    greet = function(name)
        return "Hello, " .. name
    end
}

print(myTable.greet("Alice"))  -- Ausgabe: Hello, Alice

Sie können die Funktion auch separat definieren und sie dann der Tabelle hinzufügen:

local myTable = {}

myTable.greet = function(name)
    return "Hello, " .. name
end

Oder verwende diese sauberere Kurzschreibweise:

local myTable = {}

function myTable.greet(name)
    return "Hello, " .. name
end

Alle drei Ansätze führen zum gleichen Ergebnis. Sie rufen die Funktion mit der Punktnotation auf: myTable.greet("Alice"). Dieses Muster, Funktionen mit Daten zu bündeln, ist die Grundlage der objektorientierten Programmierung in Lua.

challenge icon

Aufgabe

Einfach

Erstellen Sie eine Tabelle namens calculator, die vier arithmetische Funktionen enthält:

  • add(a, b) - gibt die Summe von a und b zurück
  • subtract(a, b) - gibt a minus b zurück
  • multiply(a, b) - gibt das Produkt von a und b zurück
  • divide(a, b) - gibt a geteilt durch b zurück

Sie erhalten drei Eingaben:

  1. Einen Operationsnamen (einer von: add, subtract, multiply, divide)
  2. Erste Zahl
  3. Zweite Zahl

Rufen Sie die entsprechende Funktion aus Ihrer calculator-Tabelle basierend auf dem Operationsnamen auf und geben Sie das Ergebnis aus.

Probier es selbst

-- Eingaben lesen
local operation = io.read()
local num1 = tonumber(io.read())
local num2 = tonumber(io.read())

-- TODO: Erstelle eine Rechner-Tabelle mit vier Funktionen:
-- add(a, b), subtract(a, b), multiply(a, b), divide(a, b)


-- TODO: Rufe die entsprechende Funktion aus der Rechner-Tabelle unter Verwendung des Operationsnamens auf
-- und gib das Ergebnis aus
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung