Lua - Funktionen

Eine Funktion ist eine Gruppe von Anweisungen, die zusammen eine Aufgabe ausführen. Sie können Ihren Code in separate Funktionen aufteilen. Wie Sie Ihren Code auf verschiedene Funktionen aufteilen, liegt bei Ihnen. Logischerweise ist die Aufteilung normalerweise eindeutig, sodass jede Funktion eine bestimmte Aufgabe ausführt.

Die Lua-Sprache bietet zahlreiche integrierte Methoden, die Ihr Programm aufrufen kann. Zum Beispiel Methodeprint() um das als Eingabe in der Konsole übergebene Argument zu drucken.

Eine Funktion ist mit verschiedenen Namen wie einer Methode oder einer Unterroutine oder einer Prozedur usw. bekannt.

Funktion definieren

Die allgemeine Form einer Methodendefinition in der Programmiersprache Lua lautet wie folgt:

optional_function_scope function function_name( argument1, argument2, argument3........, 
argumentn)
function_body
return result_params_comma_separated
end

Eine Methodendefinition in der Programmiersprache Lua besteht aus einem Methodenkopf und einem Methodenkörper . Hier sind alle Teile einer Methode -

  • Optional Function Scope- Sie können das Schlüsselwort local verwenden , um den Umfang der Funktion einzuschränken, oder den Bereichbereich ignorieren, wodurch es zu einer globalen Funktion wird.

  • Function Name- Dies ist der tatsächliche Name der Funktion. Der Funktionsname und die Parameterliste bilden zusammen die Funktionssignatur.

  • Arguments- Ein Argument ist wie ein Platzhalter. Wenn eine Funktion aufgerufen wird, übergeben Sie dem Argument einen Wert. Dieser Wert wird als tatsächlicher Parameter oder Argument bezeichnet. Die Parameterliste bezieht sich auf den Typ, die Reihenfolge und die Anzahl der Argumente einer Methode. Argumente sind optional; Das heißt, eine Methode darf kein Argument enthalten.

  • Function Body - Der Methodenkörper enthält eine Sammlung von Anweisungen, die definieren, was die Methode tut.

  • Return - In Lua ist es möglich, mehrere Werte zurückzugeben, indem Sie dem Schlüsselwort return mit den durch Kommas getrennten Rückgabewerten folgen.

Beispiel

Es folgt der Quellcode für eine aufgerufene Funktion max(). Diese Funktion verwendet zwei Parameter num1 und num2 und gibt das Maximum zwischen den beiden zurück -

--[[ function returning the max between two numbers --]]
function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result; 
end

Funktionsargumente

Wenn eine Funktion Argumente verwenden soll, muss sie die Variablen deklarieren, die die Werte der Argumente akzeptieren. Diese Variablen werden als bezeichnetformal parameters der Funktion.

Die formalen Parameter verhalten sich wie andere lokale Variablen innerhalb der Funktion und werden beim Eintritt in die Funktion erstellt und beim Beenden zerstört.

Eine Funktion aufrufen

Beim Erstellen einer Lua-Funktion definieren Sie, was die Funktion zu tun hat. Um eine Methode zu verwenden, müssen Sie diese Funktion aufrufen, um die definierte Aufgabe auszuführen.

Wenn ein Programm eine Funktion aufruft, wird die Programmsteuerung auf die aufgerufene Funktion übertragen. Eine aufgerufene Funktion führt die definierte Aufgabe aus. Wenn ihre return-Anweisung ausgeführt wird oder wenn das Ende ihrer Funktion erreicht ist, gibt sie die Programmsteuerung an das Hauptprogramm zurück.

Um eine Methode aufzurufen, müssen Sie lediglich die erforderlichen Parameter zusammen mit dem Methodennamen übergeben. Wenn die Methode einen Wert zurückgibt, können Sie den zurückgegebenen Wert speichern. Zum Beispiel -

function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result; 
end

-- calling a function
print("The maximum of the two numbers is ",max(10,4))
print("The maximum of the two numbers is ",max(5,6))

Wenn wir den obigen Code ausführen, erhalten wir die folgende Ausgabe.

The maximum of the two numbers is 	10
The maximum of the two numbers is 	6

Funktionen zuweisen und übergeben

In Lua können wir die Funktion Variablen zuweisen und sie auch als Parameter einer anderen Funktion übergeben. Hier ist ein einfaches Beispiel für das Zuweisen und Übergeben einer Funktion als Parameter in Lua.

myprint = function(param)
   print("This is my print function -   ##",param,"##")
end

function add(num1,num2,functionPrint)
   result = num1 + num2
   functionPrint(result)
end

myprint(10)
add(2,5,myprint)

Wenn wir den obigen Code ausführen, erhalten wir die folgende Ausgabe.

This is my print function -   ##	10	##
This is my print function -   ##	7	##

Funktion mit variablem Argument

Es ist möglich, Funktionen mit variablen Argumenten in Lua zu erstellen, indem '...' als Parameter verwendet wird. Wir können dies anhand eines Beispiels verstehen, in dem die Funktion den Durchschnitt zurückgibt und variable Argumente annehmen kann.

function average(...)
   result = 0
   local arg = {...}
   for i,v in ipairs(arg) do
      result = result + v
   end
   return result/#arg
end

print("The average is",average(10,5,3,4,5,6))

Wenn wir den obigen Code ausführen, erhalten wir die folgende Ausgabe.

The average is	5.5