Latest web development tutorials

función Lua

En Lua, la función es el principal método de declaraciones abstractas y expresiones. Ambos pueden ser utilizados para hacer frente a un trabajo especial, también se puede utilizar para calcular algunos valores.

Lua ofrece muchas funciones incorporadas, puede llamar fácilmente, tales como la función print () puede ser parámetros pasados ​​se imprimen en la consola en el programa.

función Lua Hay dos propósitos principales:

  • 1. completar la tarea asignada, en este caso se utiliza como una declaración llamada de función;
  • 2. Calcular y devuelve el valor, en cuyo caso la función se utiliza como una expresión de asignación.

definición de la función

funciones del lenguaje de programación Lua definidos en el siguiente formato:

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

resolución:

  • optional_function_scope
  • : Este parámetro es función opcional es el desarrollo de una función global o una función local, al final del parámetro no se ajusta a una función global, si es necesario configurar la función es una función parcial tiene que utilizar la palabra clave local.
  • function_name:
  • Especificar el nombre de la función.
  • argumento1 argumento2, argumento3 ..., argumentn :
  • Los parámetros de función, múltiples parámetros separados por comas, también pueden funcionar sin parámetros.
  • function_body:
  • Cuerpo de la función, instrucciones de código de bloques de función necesita ser realizado.
  • result_params_comma_separated:
  • valores de retorno de la función, la función del lenguaje Lua pueden devolver múltiples valores, cada uno separado por comas.

    Ejemplos

    El ejemplo siguiente define una funciónmax (), los parámetros num1, num2, que se utiliza para comparar el tamaño de los dos valores y devuelve el 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))
    

    El código de seguridad se ejecuta como resultado de:

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

    Lua que puede funcionar como un parámetro que se pasa a la función, los siguientes ejemplos:

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

    El código de seguridad se ejecuta como resultado de:

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

    valores de retorno múltiples

    función Lua puede devolver varios valores de resultado, como string.find, que devuelve la cadena coincidente "principio y al final del subíndice" (si no hay retornos cadena de búsqueda nil).

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

    función Lua, después de la vuelta vale para devolver una lista de listas pueden devolver múltiples valores, tales 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}))
    

    El código de seguridad se ejecuta como resultado de:

    23	3
    

    parámetro variable

    función Lua puede aceptar un número variable de argumentos, y el lenguaje C similar al uso de una lista de parámetros de función de tres puntos (...) denota una función con parámetros variables.

    parámetros de la función Lua en una tabla llamada arg, #arg representa el número de parámetros pasados.

    Por ejemplo, se calcula el promedio de algunos 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))
    

    El código de seguridad se ejecuta como resultado de:

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