Introduction au Lua/Variables
Nous savons que les modules Lua pour Scribunto/Mediawiki sont des pages rassemblées dans l'espace de nom nommé "Module:". Le module utilisera une table comme variable locale, pour retourner sa réponse qui aboutira à l'affichage de texte sur une page Wiki. Cette variable est incontournable elle est définie au début et retournée à la fin de chaque module (on la nomme communément "p").
Les variables sont des conteneurs qui stockent des valeurs[1]. Le code de vos fonctions va lui aussi manipuler des variables nous allons étudier comment.
Prérequis
modifierCette leçon suppose que vous ayez assimilé la leçon Modules.
Créer un script Lua avec des variables
modifier- Accéder au Module:Sandbox.
- Supprimer le code existant.
- Ajouter le code suivant et enregistrer la page:
local p = {}
function p.variables()
local variable = 1
variable = variable + 1
return variable
end
return p
Tester votre script
modifier- Rendez-vous sur "votre page de test".
- Ajouter le code suivant et enregistrer la page:
{{#invoke:Sandbox|variables}}
Le résultat:
2
Comprendre le nouveau script
modifierlocal
Défini le périmètre de la variable que vous déclarez.- Si vous êtes familier avec la notion de portée des variable, soyez attentif. Les variables Lua sont "global" par défaut. La bonne pratique consiste à utiliser systématiquement des variables local pour garantir que votre variable et sa valeur soit accessible uniquement à l’intérieur de la fonction. Donc vous utiliserez le mot clé
local
en prélude à la déclaration de vos variables.
- Si vous êtes familier avec la notion de portée des variable, soyez attentif. Les variables Lua sont "global" par défaut. La bonne pratique consiste à utiliser systématiquement des variables local pour garantir que votre variable et sa valeur soit accessible uniquement à l’intérieur de la fonction. Donc vous utiliserez le mot clé
variable
Défini le nom de la variable.- Le nom des variable est libre à l'exception des mots-clés du langage. Par exemple local, if, then sont des noms réservés que vous ne devez pas utiliser pour nommer vos variables. cf bonnes pratiques et mots réservés...
= 1
Assigne la valeur1
à la variable nommée:variable
.- Les variables qui ne sont pas initialisées ; c-à-d qui n'ont pas de valeur, sont considérées comme
nil
. Ceci constitue une caractéristique fondamentale du langage Lua, "nil" est un type de variable et représente l’absence de valeur.
- Les variables qui ne sont pas initialisées ; c-à-d qui n'ont pas de valeur, sont considérées comme
variable = variable + 1
La variablevariable
est égale à elle-même plus1
.- Une variable peur s'utiliser aussi bien comme source que comme destination d'une expression (un calcul).
return variable
Retourne la valeur courante de la variable comme résultat de la fonction.- La réponse de la fonction sera passée à la variable initiale du module qui doit être une table (généralement
p = {}
. Finalement se sont les valeurs contenues dans la table du module qui seront converties en texte (lequel sera interprété sous forme de page par le processus qui à appelé la fonction du module). Les valeurs numériques sont donc implicitement converties en chaine de texte avant d'être renvoyées.
- La réponse de la fonction sera passée à la variable initiale du module qui doit être une table (généralement
{{#invoke:Sandbox|variables}}
Appel la fonctionvariables
du module Sandbox.
Chaque fonction peut utiliser une ou plusieurs variables pour contenir des valeurs intermédiaires ou des valeurs à retourner. Lua permet de stocker une fonction dans une variable.
Conclusion
modifierFélicitation! Vous êtes capable de créer, tester et comprendre un script Lua qui contient des variables. Continuez avec la leçon Expressions.
Voir aussi
modifierRéférences
modifier