Introduction au Lua/Variables

Début de la boite de navigation du chapitre

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

Variables
Icône de la faculté
Chapitre no 5
Leçon : Introduction au Lua
Chap. préc. :Modules
Chap. suiv. :Expressions
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Introduction au Lua : Variables
Introduction au Lua/Variables
 », n'a pu être restituée correctement ci-dessus.


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

Cette leçon suppose que vous ayez assimilé la leçon Modules.

Créer un script Lua avec des variables

modifier
  1. Accéder au Module:Sandbox.
  2. Supprimer le code existant.
  3. 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
  1. Rendez-vous sur "votre page de test".
  2. Ajouter le code suivant et enregistrer la page:
{{#invoke:Sandbox|variables}}

Le résultat:

2

Comprendre le nouveau script

modifier
  1. 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.
  2. 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...
  3. = 1 Assigne la valeur 1 à 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.
  4. variable = variable + 1 La variable variable est égale à elle-même plus 1.
    Une variable peur s'utiliser aussi bien comme source que comme destination d'une expression (un calcul).
  5. 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.
  6. {{#invoke:Sandbox|variables}} Appel la fonction variables 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

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

Références

modifier

Lua for Wikiversity (en)