Lua-Funktion
In Lua Funktion ist die wichtigste Methode der abstrakten Anweisungen und Ausdrücke. Beide können verwendet werden, mit einigen speziellen Arbeit zu tun, kann es auch einige Werte verwendet werden, zu berechnen.
Lua bietet viele integrierte Funktionen, Sie können sie leicht nennen, wie print () Funktion kann übergebenen Parameter auf der Konsole im Programm gedruckt werden.
Lua-Funktion Es gibt zwei Hauptziele:
- 1. Stellen Sie die Aufgabe abzuschließen, ist in diesem Fall als Funktionsaufruf-Anweisung verwendet;
- 2. Berechnen und gibt den Wert, in welchem Fall die Funktion als Zuweisungsausdruck verwendet wird.
Funktionsdefinition
Programmiersprache Lua Funktionen im folgenden Format definiert:
optional_function_scope function function_name( argument1, argument2, argument3de., argumentn) function_body return result_params_comma_separated end
Auflösung:
- optional_function_scope : Dieser Parameter ist optional Funktion ist eine globale Funktion oder eine lokale Funktion, das Ende des Parameters auf eine globale Funktion, ist nicht , wenn Sie Funktion müssen gesetzt zu entwickeln , ist eine partielle Funktion das Schlüsselwort lokale verwenden muss.
- function_name: Geben Sie den Namen der Funktion.
- argument1, argument2, Argument3 de., argumentN : Funktionsparameter, mehrere Parameter durch Komma getrennt, kann auch funktionieren, ohne Parameter.
- FUNCTION_BODY: Körper der Funktion, Funktionsbaustein-Code-Anweisungen durchgeführt werden müssen.
- result_params_comma_separated: Funktionsrückgabewerte können Lua Sprache Funktion mehrere Werte zurückgeben, die jeweils durch ein Komma getrennt.
Beispiele
Das folgende Beispiel definiert eine Funktionmax (), Parameter num1, num2, verwendet , um die Größe von zwei Werten zu vergleichen und gibt den Maximalwert:
--[[ 函数返回两个值的最大值 --]] function max(num1, num2) if (num1 > num2) then result = num1; else result = num2; end return result; end -- 调用函数 print("两值比较最大值为 ",max(10,4)) print("两值比较最大值为 ",max(5,6))
Der obige Code wird als Ergebnis der Ausführung:
两值比较最大值为 10 两值比较最大值为 6
Lua wir können als Parameter Funktion an die Funktion übergeben, werden die folgenden Beispiele:
myprint = function(param) print("这是打印函数 - ##",param,"##") end function add(num1,num2,functionPrint) result = num1 + num2 -- 调用传递的函数参数 functionPrint(result) end myprint(10) -- myprint 函数作为参数传递 add(2,5,myprint)
Der obige Code wird als Ergebnis der Ausführung:
这是打印函数 - ## 10 ## 这是打印函数 - ## 7 ##
Mehrere Rückgabewerte
Lua-Funktion können mehrere Ergebniswerte zurückgeben, wie string.find, die die Zeichenfolge "Anfang und Ende des Index" gibt (wenn es keine Matchstring gibt nil zurück ist).
> s, e = string.find("www.w3write.com", "w3big") > print(s, e) 5 10
Lua-Funktion, nach der Rückkehr lohnt sich eine Liste von Listen zurückkehren können mehrere Werte zurückgeben, wie zB:
function maximum (a) local mi = 1 -- 最大值索引 local m = a[mi] -- 最大值 for i,val in ipairs(a) do if val > m then mi = i m = val end end return m, mi end print(maximum({8,10,23,12,5}))
Der obige Code wird als Ergebnis der Ausführung:
23 3
Variable Parameter
Lua Funktion kann eine variable Anzahl von Argumenten akzeptiert und C ähnliche Sprache unter Verwendung eines Dreipunkt-Funktionsparameterliste (de.) bezeichnet eine Funktion mit variablen Parametern.
Lua Funktionsparameter in einer Tabelle namens arg, #arg die Anzahl der übergebenen Parameter darstellt.
Zum Beispiel berechnen wir den Durchschnitt von ein paar Zahlen:
function average(de.) result = 0 local arg={de.} for i,v in ipairs(arg) do result = result + v end print("总共传入 " de #arg de " 个数") return result/#arg end print("平均值为",average(10,5,3,4,5,6))
Der obige Code wird als Ergebnis der Ausführung:
总共传入 6 个数 平均值为 5.5