Définition.
Une fonction ( aussi appelé "routine" ), est une portion de code représentant un bloc et contenant un sous programme.
Suivant le langage utilisé et plus généralement en POO, l'on parlera aussi de méthode.( voir § suivant )
Mais pour ce qui nous intéresse ici, le langage Lua, nous parlerons tout simplement de fonction.
1/ Définition de la fonction. function Nom_de_votre_fonction(arg1, arg2, ...) -- ... corps de la fonction ... end 2/ Et pour appeler cette fonction: Nom_de_votre_fonction(param1, param2, param3, param4)
Une fonction est une expression exécutable, dont la valeur est de type fonction.
Les déclarations suivantes ... | ... peuvent aussi s'écrire |
function f() .. corps .. end | f = function() .. corps .. end |
function t.a.b.c.f() .. corps .. end | t.a.b.c.f = function() .. corps .. end |
local function f() .. corps .. end | local f; f = function() .. corps .. end |
Trois petits points dans la liste de arguments (...), informent votre fonction qu'elle est susceptible de recevoir d'autres arguments dont vous ne connaissez pas encore le nombre. (voir le paragraphe "Arguments Multiples")
Les paramètres agissent en tant que variables locales, et sont initialisés avec les valeurs de l'argument.
Les résultats d'une fonction seront retournés à l'aide de la déclaration return.
Si le contrôle atteint la fin de la fonction, sans rencontrer de déclaration return, alors la fonction se termine, mais sans renvoyer de résultat.
Lua peut appeler des fonctions écrites en Lua et des fonctions écrites en C.
Toutes les bibliothèque standards Lua sont écrites en C et comprennent des fonctions pour la manipulation des chaînes de caractères (string), la manipulation des tables, la manipulation des entrées/sorties (In/Out), l'accès à des installations d'exploitation de base du système, des fonctions mathématiques et le débogage .
Il y a aucune différence, entre appeler une fonction LUA, ou une fonction C.
-- la fonction Calcul reçoit 2 arguments (x et y) local function Calcul(x, y) local total = x * y print("total = "..total) end -- Affectation multiple local param1, param2 = 25, 13 -- On appelle la fonction Calcul en lui passant 2 paramètres Calcul(param1, param2)
Les variables param1 et param2, existent dans la fonction sous la forme des 2 arguments x et y qui disparaissent à la sortie de la fonction, tout comme la variable local "total".