Skip to content

Latest commit

 

History

History
51 lines (43 loc) · 898 Bytes

variadic.md

File metadata and controls

51 lines (43 loc) · 898 Bytes

Lua par l'exemple: Fonction à nombre d'arguments variables

Des fonctions en Lua peuvent recevoir un nombre d'arguments variables comme print():

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 ... :

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:

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

Exemple suivant: Récupérer les arguments de la ligne de commandes.