Les langages / Lua / Fonctions
Fonctions
Les fonctions sont des blocs de code réutilisables. En Lua, les fonctions sont des valeurs de première classe: elles peuvent être stockées dans des variables, passées en paramètres et retournées.
Déclaration et appel de fonctions
-- Fonction simple
function direBonjour()
print("Bonjour!")
end
direBonjour()
-- Fonction avec paramètres
function saluer(nom)
print("Bonjour, " .. nom .. "!")
end
saluer("Shadow")
-- Fonction locale
local function additionner(a, b)
return a + b
end
local resultat = additionner(5, 3)
print("Résultat: " .. resultat)
Valeurs de retour multiples
-- Retourner plusieurs valeurs
function obtenirCoordonnees()
return 10, 20, 30
end
local x, y, z = obtenirCoordonnees()
print("X:", x, "Y:", y, "Z:", z)
-- Fonction de calcul
function diviser(a, b)
if b == 0 then
return nil, "Division par zéro!"
end
return a / b, "Succès"
end
local resultat, message = diviser(10, 2)
print(resultat, message)
Paramètres variables
-- Nombre variable d'arguments
function somme(...)
local total = 0
for i, v in ipairs({...}) do
total = total + v
end
return total
end
print(somme(1, 2, 3)) -- 6
print(somme(10, 20, 30, 40)) -- 100
-- Afficher tous les arguments
function afficherArgs(...)
local args = {...}
print("Nombre d'arguments:", #args)
for i, v in ipairs(args) do
print(i, v)
end
end
afficherArgs("A", "B", "C")
Fonctions anonymes et closures
-- Fonction anonyme
local multiplier = function(x, y)
return x * y
end
print(multiplier(4, 5))
-- Closure (capture de variable)
function creerCompteur()
local compte = 0
return function()
compte = compte + 1
return compte
end
end
local compteur = creerCompteur()
print(compteur()) -- 1
print(compteur()) -- 2
print(compteur()) -- 3
8 exercices pour cette lecon
Les exercices demandent un compte : il faut bien enregistrer votre progression quelque part. La lecture, elle, reste libre. Creer un compte
- Fonction simple facile 10 XP
- Fonction avec paramètre facile 10 XP
- Fonction avec return facile 10 XP
- Fonction avec plusieurs paramètres moyen 20 XP
- Fonction avec valeur par défaut moyen 20 XP
- Fonction avec plusieurs retours moyen 20 XP
- Fonction récursive moyen 20 XP
- Fonction variadique difficile 35 XP