Latest web development tutorials

função Lua

Na Lua, a função é o principal método de afirmações abstratas e expressões. Ambos podem ser usados ​​para tratar um trabalho especial, ele também pode ser usado para calcular alguns valores.

Lua fornece muitas funções embutidas, você pode facilmente chamá-los, tais como a função print () pode ser parâmetros passados ​​imprimir no console no programa.

função Lua Há dois propósitos principais:

  • 1. completar a tarefa atribuída, neste caso, é usado como uma declaração chamada de função;
  • 2. Calcular e devolve o valor, caso em que a função é usado como uma expressão de atribuição.

definição de função

funções da linguagem de programação Lua definidas no seguinte formato:

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

resolução:

  • optional_function_scope
  • : Este parâmetro é função opcional é desenvolver uma função global ou uma função local, o final do parâmetro não é definida como uma função global, se você precisa definir a função é uma função parcial precisa usar a palavra-chave local.
  • function_name:
  • Especifique o nome da função.
  • argument1, argument2, Argument3 ..., argumentoN :
  • parâmetros de função, vários parâmetros separados por vírgulas, também pode funcionar sem parâmetros.
  • function_body:
  • Corpo da função, bloco de funções instruções de código precisam ser executadas.
  • result_params_comma_separated:
  • valores de retorno de função, a função da linguagem Lua pode retornar vários valores, separados por vírgulas.

    Exemplos

    O exemplo a seguir define uma funçãomax (), os parâmetros num1, num2, utilizado para comparar o tamanho dos dois valores e retorna o valor máximo:

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

    O código acima é executado como resultado de:

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

    Lua que pode funcionar como um parâmetro transmitido para a função, os seguintes exemplos:

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

    O código acima é executado como resultado de:

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

    Vários valores de retorno

    função Lua pode retornar múltiplos valores de resultado, como string.find, que retorna a string matching "início e no final do índice" (se não houver cordas jogo retorna nil).

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

    função Lua, após o retorno vale a pena para retornar uma lista de listas pode retornar vários valores, tais como:

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

    O código acima é executado como resultado de:

    23	3
    

    parâmetro variável

    função Lua pode aceitar um número variável de argumentos, e linguagem C semelhante ao uso de uma lista de parâmetros de função de três pontos (...) indica uma função com parâmetros variáveis.

    parâmetros de função Lua em uma tabela chamada arg, #arg representa o número de parâmetros passados.

    Por exemplo, calcula-se a média de alguns números:

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

    O código acima é executado como resultado de:

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