Latest web development tutorials

funzione Lua

In Lua, la funzione è il metodo principale di affermazioni astratte e le espressioni. Entrambi possono essere usati per affrontare un lavoro speciale, può anche essere usato per calcolare alcuni valori.

Lua offre molte funzioni built-in, si può facilmente chiamare, come ad esempio la funzione print () può essere parametri passati stampare sulla console nel programma.

funzione di Lua Ci sono due scopi principali:

  • 1. completare il compito assegnato, in questo caso viene utilizzato come una dichiarazione di funzione di chiamata;
  • 2. Calcola e restituisce il valore, nel qual caso la funzione viene usato come un'espressione di assegnazione.

definizione di funzione

funzioni del linguaggio di programmazione Lua definiti nel seguente formato:

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

Risoluzione:

  • optional_function_scope
  • : Questo parametro è la funzione opzionale è di sviluppare una funzione globale o di una funzione locale, alla fine del parametro non è impostato su una funzione globale, se è necessario impostare la funzione è una funzione parziale ha bisogno di usare la parola chiave locale.
  • function_name:
  • Specifica il nome della funzione.
  • argument1, argument2, argument3 ..., argumentn :
  • Parametri di funzione, più parametri separati da virgole, può anche funzionare senza parametri.
  • function_body:
  • Corpo della funzione, istruzioni di codice dei blocchi funzione è necessario eseguire.
  • result_params_comma_separated:
  • valori di ritorno delle funzioni, funzione di linguaggio Lua possono restituire valori multipli, ognuno separato da virgole.

    Esempi

    L'esempio seguente definisce una funzionemax (), parametri num1, num2, utilizzato per confrontare le dimensioni dei due valori e restituisce il valore massimo:

    --[[ 函数返回两个值的最大值 --]]
    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))
    

    Il codice precedente viene eseguito come risultato di:

    两值比较最大值为 	10
    两值比较最大值为 	6
    

    Lua possiamo funzionare come un parametro passato alla funzione, i seguenti esempi:

    myprint = function(param)
       print("这是打印函数 -   ##",param,"##")
    end
    
    function add(num1,num2,functionPrint)
       result = num1 + num2
       -- 调用传递的函数参数
       functionPrint(result)
    end
    myprint(10)
    -- myprint 函数作为参数传递
    add(2,5,myprint)
    

    Il codice precedente viene eseguito come risultato di:

    这是打印函数 -   ##	10	##
    这是打印函数 -   ##	7	##
    

    valori di ritorno multipli

    funzione di Lua può restituire più valori dei risultati, come string.find, che restituisce la stringa corrispondente "all'inizio e alla fine del pedice" (se non ci sono i rendimenti partita stringa NIL).

    > s, e = string.find("www.w3big.com", "w3big") 
    > print(s, e)
    5	10
    

    funzione di Lua, dopo il ritorno vale la pena di restituire un elenco di liste può restituire valori multipli, come ad esempio:

    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}))
    

    Il codice precedente viene eseguito come risultato di:

    23	3
    

    parametro variabile

    funzione di Lua può accettare un numero variabile di argomenti, e il linguaggio C simile ad usare un tre punti elenco dei parametri di funzione (...) denota una funzione con parametri variabili.

    parametri di funzione Lua in una tabella chiamata ARG, #arg rappresenta il numero di parametri passati.

    Per esempio, si calcola la media di alcuni numeri:

    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))
    

    Il codice precedente viene eseguito come risultato di:

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