Menu
Coddy logo textTech

Construction de table & unpack()

Fait partie de la section Logic & Flow du Journey Lua de Coddy — leçon 6 sur 54.

Lua propose une paire de techniques complémentaires pour travailler avec plusieurs valeurs : la construction de tables et table.unpack(). Celles-ci sont particulièrement utiles lors de l'utilisation de fonctions nécessitant une gestion flexible des arguments.

Vous pouvez capturer plusieurs valeurs dans une table de type liste en utilisant la syntaxe du constructeur de table avec des accolades. Cela rassemble toutes les valeurs dans une structure de table unique.

local args = {10, 20, 30}
print(args[1])  -- Sortie : 10
print(#args)    -- Sortie : 3

La fonction table.unpack() fait l'inverse : elle prend une table de type liste et renvoie tous ses éléments sous forme de valeurs distinctes. Cela vous permet de passer le contenu d'une table comme arguments individuels à une fonction.

local numbers = {5, 10, 15}
print(table.unpack(numbers))  -- Résultat : 5    10    15

Ces techniques fonctionnent ensemble de manière fluide. Vous pouvez collecter des valeurs dans un tableau, manipuler le tableau, puis les déballer à nouveau en valeurs individuelles.

challenge icon

Défi

Facile

Écrivez une fonction forwardArguments qui prend trois nombres a, b, et c, et retourne leur somme en utilisant la construction de table et table.unpack().

Créez une table contenant les trois arguments en utilisant la syntaxe {a, b, c}, puis déballez-les et passez-les à une autre fonction qui calcule leur somme.

Logique :

  • Utilisez {a, b, c} pour créer une table contenant les trois arguments
  • Créez une fonction séparée appelée sum qui prend trois paramètres et retourne leur somme
  • Utilisez table.unpack() pour passer les valeurs de la table à la fonction sum
  • Retournez le résultat de la fonction sum

Paramètres :

  • a (number) : Premier nombre
  • b (number) : Deuxième nombre
  • c (number) : Troisième nombre

Retourne : La somme des trois nombres (number)

Aide-mémoire

La syntaxe du constructeur de table {a, b, c, ...} crée une table de type liste. Utilisez # pour obtenir le nombre d'éléments.

local args = {10, 20, 30}
print(args[1])  -- Résultat : 10
print(#args)    -- Résultat : 3

table.unpack() prend une table de type liste et renvoie tous ses éléments sous forme de valeurs distinctes, ce qui vous permet de passer le contenu de la table en tant qu'arguments individuels à une fonction.

local numbers = {5, 10, 15}
print(table.unpack(numbers))  -- Résultat : 5    10    15

Essayez vous-même

function forwardArguments(a, b, c)
    -- Créer une fonction séparée qui calcule la somme

    -- Créer une table contenant les trois arguments

    -- Déballer la table et passer les valeurs à la fonction sum

end
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow