Latest web development tutorials

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, argument3..., 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 ..., 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.w3big.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 (...) 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(...)
       result = 0
       local arg={...}
       for i,v in ipairs(arg) do
          result = result + v
       end
       print("总共传入 " .. #arg .. " 个数")
       return result/#arg
    end
    
    print("平均值为",average(10,5,3,4,5,6))
    

    Der obige Code wird als Ergebnis der Ausführung:

    总共传入 6 个数
    平均值为	5.5