Des fonctions en Lua peuvent recevoir un nombre d’arguments variables comme print() :
1
2
3
4
5
6
7
8
9
10
11
|
a = 2
b = 4
c = 6
-- On passe 3 paramètres
print(a, b, c)
-- On passe 1 seul paramètre
print(6)
-- output:
-- 2 4 6
-- 6
|
Pour récupérer ses arguments, il faut utiliser … :
1
2
3
4
5
6
7
8
9
10
|
function variadic(...)
print(...)
end
variadic(1, 2, 3)
variadic("a", 2, "b")
-- output
-- a
-- 2
-- b
|
Attention, … aspire toutes les données restantes donc, il doit être mis en dernier paramètre lors de la déclaration de la fonction :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
function variadic(a, ...)
print("variable a: " .. a)
for _, v in ipairs{...} do
print(v)
end
end
variadic("b", "c", 2, 6, 4)
-- output:
-- variable a: b
-- c
-- 2
-- 6
-- 4
|