construction de tables et unpack()
Fait partie de la section Logique et déroulement du programme du Journey Lua de Coddy. Leçon 6 sur 54.
unpack(). Elles sont particulièrement utiles lorsqu’on travaille avec des fonctions qui nécessitent une gestion flexible des arguments.Tu peux capturer plusieurs valeurs dans une table de type liste à l’aide de la syntaxe du constructeur de table avec des accolades. Cela regroupe toutes les valeurs dans une seule structure de table.local args = {10, 20, 30}
print(args[1]) -- Sortie : 10
print(#args) -- Sortie : 3unpack() 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 de la table à une fonction sous forme d’arguments individuels.Important : Bien que les versions plus récentes de Lua (5.2+) aient déplacé cette fonction vers table.unpack(), cet environnement utilise Lua 5.1 ; tu dois donc utiliser la fonction globale unpack().local numbers = {5, 10, 15}
print(unpack(numbers)) -- Sortie : 5 10 15Défi
FacileÉcris une fonction forwardArguments qui prend trois nombres a, b et c, et renvoie leur somme en construisant une table et en utilisant unpack().
Crée une table contenant les trois arguments avec la syntaxe {a, b, c}, puis décompose-la et passe ses valeurs à une autre fonction qui calcule leur somme.
Remarque : Utilise la fonction globale unpack() plutôt que table.unpack() pour garantir la compatibilité avec cet environnement.
Logique :
- Utilise
{a, b, c}pour créer une table contenant les trois arguments - Crée une fonction distincte appelée
sumqui prend trois paramètres et renvoie leur somme - Utilise
unpack()pour passer les valeurs de la table à la fonctionsum - Renvoie le résultat de la fonction
sum
Paramètres :
a(nombre) : Premier nombreb(nombre) : Deuxième nombrec(nombre) : Troisième nombre
Valeur renvoyée : La somme des trois nombres (nombre)
Essayez vous-même
function forwardArguments(a, b, c)
-- Créez une fonction distincte qui calcule la somme
-- Créez une table contenant les trois arguments
-- Décomposez la table et transmettez les valeurs à la fonction de calcul de la somme
-- Indice : utilisez la fonction globale 'unpack' pour décomposer les arguments contenus dans la table
endCette 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 déroulement du programme
1Itération avancée des tables
Itérer avec pairs()Itérer avec ipairs()pairs() contre ipairs()Récapitulatif - Fiche de personnage2Fonctions supplémentaires de la bibliothèque table
table.concat()construction de tables et unpack()table.sort()Tri personnalisé avec des fonctionsRécapitulatif - Tableau des meilleurs scores3Concepts avancés des fonctions
Retourner plusieurs valeursFonctions variadiques (...)Les fonctions comme valeurs de première classeFonctions anonymesQu’est-ce qu’une fermeture ?Récapitulatif - Gestionnaire d’événements simpleEntraînez-vous par vous-même : Compilateur Lua en ligne