Menu
Coddy logo textTech

Construction de table & unpack()

Fait partie de la section Logique et flux du Journey Lua de Coddy — leçon 6 sur 54.

Lua fournit une paire de techniques complémentaires pour travailler avec des valeurs multiples : la construction de tables et unpack(). Celles-ci sont particulièrement utiles lorsque vous travaillez avec des fonctions qui nécessitent une gestion flexible des arguments.Vous pouvez capturer plusieurs valeurs dans une table sous forme de liste en utilisant la syntaxe du constructeur de table avec des accolades. Cela rassemble toutes les valeurs dans une seule structure de table.
local args = {10, 20, 30}
print(args[1])  -- Sortie : 10
print(#args)    -- Sortie : 3
La fonction unpack() fait l'inverse : elle prend une table de type liste et renvoie tous ses éléments sous forme de valeurs séparées. Cela vous permet de transmettre le contenu d'une table en tant qu'arguments individuels à une fonction.Important : Bien que les versions plus récentes de Lua (5.2+) aient déplacé cette fonction vers table.unpack(), cet environnement exécute Lua 5.1, vous devez donc utiliser la fonction globale unpack().
local numbers = {5, 10, 15}
print(unpack(numbers))  -- Sortie : 5    10    15
Ces techniques fonctionnent ensemble de manière transparente. Vous pouvez collecter des valeurs dans une table, manipuler la table, puis la déballer avec `unpack` pour obtenir de nouveau des 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 unpack().

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

Remarque : Veuillez utiliser la fonction globale unpack() plutôt que table.unpack() pour garantir la compatibilité avec cet environnement.

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 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)

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
    -- Indice : Utilisez la fonction globale 'unpack' pour étendre les arguments de la table

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 Logique et flux