Latest web development tutorials

fonction Lua

Dans Lua, la fonction est la principale méthode de déclarations abstraites et expressions. Les deux peuvent être utilisés pour traiter certains travaux spéciaux, il peut également être utilisé pour calculer certaines valeurs.

Lua offre de nombreuses fonctions intégrées, vous pouvez facilement les appeler, tels que la fonction d'impression () peut être paramètres passés imprimer sur la console dans le programme.

fonction Lua Il y a deux objectifs principaux:

  • 1. compléter la tâche assignée, dans ce cas, est utilisé comme une déclaration d'appel de fonction;
  • 2. Calculer et renvoie la valeur, auquel cas la fonction est utilisée comme une expression d'affectation.

Définition de la fonction

Lua fonctions de langage de programmation définies dans le format suivant:

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

Résolution:

  • optional_function_scope
  • : Ce paramètre est fonction en option est de développer une fonction globale ou une fonction locale, la fin du paramètre est pas réglé sur une fonction globale, si vous avez besoin de mettre en fonction est une fonction partielle a besoin d'utiliser le mot - clé local.
  • function_name:
  • Indiquez le nom de la fonction.
  • argument1, argument2, argument3 ..., argumentn :
  • Paramètres de fonction, plusieurs paramètres séparés par des virgules, peuvent également fonctionner sans paramètres.
  • function_body:
  • Corps de la fonction, des instructions de code du bloc fonction doivent être effectuées.
  • result_params_comma_separated:
  • les valeurs de retour de fonction, la fonction du langage Lua peuvent retourner des valeurs multiples, chacune séparée par des virgules.

    Exemples

    L'exemple suivant définit une fonctionmax (), les paramètres num1, num2, utilisé pour comparer la taille des deux valeurs et renvoie la valeur maximale:

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

    Le code ci-dessus est exécutée à la suite de:

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

    Lua nous pouvons fonctionner comme un paramètre passé à la fonction, les exemples suivants:

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

    Le code ci-dessus est exécutée à la suite de:

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

    Plusieurs valeurs de retour

    fonction Lua peut renvoyer plusieurs valeurs de résultat, comme string.find, qui renvoie la chaîne correspondante "début et de fin de l'indice" (s'il n'y a aucun retour de chaîne match nul).

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

    fonction Lua, après le retour vaut la peine de retourner une liste de listes peut renvoyer plusieurs valeurs, telles que:

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

    Le code ci-dessus est exécutée à la suite de:

    23	3
    

    paramètre variable

    fonction Lua peut accepter un nombre variable d'arguments, et le langage C similaire à l'aide d'une liste de paramètres de fonction à trois points (...) désigne une fonction avec des paramètres variables.

    Lua paramètres de la fonction dans un tableau appelé arg, #arg représente le nombre de paramètres passés.

    Par exemple, nous calculons la moyenne de quelques chiffres:

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

    Le code ci-dessus est exécutée à la suite de:

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