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
[modifier | modifier le wikicode]Cette leçon suppose que vous ayez assimilé la leçon Modules.
Créer un script Lua avec des variables
[modifier | modifier le wikicode]- 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 | modifier le wikicode]- 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
[modifier | modifier le wikicode]local
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
[modifier | modifier le wikicode]Fé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
[modifier | modifier le wikicode]Références
[modifier | modifier le wikicode]