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