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