Menu
Coddy logo textTech

Tabellen mit Funktionen

Teil des Abschnitts Object Oriented Programming 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.

Spickzettel

In Lua können Tabellen Funktionen zusammen mit Daten speichern. Um eine Funktion zu einer Tabelle hinzuzufügen, weisen Sie sie einem Schlüssel zu:

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

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

Sie können Funktionen auch separat definieren und sie der Tabelle hinzufügen:

local myTable = {}

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

Oder verwenden Sie die Kurzschreibweise:

local myTable = {}

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

Rufen Sie Tabellenfunktionen mit der Punktnotation auf: myTable.greet("Alice")

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 Object Oriented Programming