Introduction au Lua/Conditions
Les modules Mediawiki sont des scripts Scribunto qui utilisent une table locale comme interface. Ils peuvent contenir une ou plusieurs fonctions qui reçoivent en entrée les données de la table. Le code des fonctions suit les règles du langage Lua lui-même. Nous avons abordé ses variables, la syntaxe de ses expressions. Les conditions sont des structures de code utilisées pour faire des choix et contrôler le déroulement du script. Cette leçon montre comment utiliser des conditions dans vos scripts[1].
Prérequis
[modifier | modifier le wikicode]Cette leçon suppose que vous ayez assimilé la leçon Expressions.
Créer un script Lua avec...
[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.conditions()
local hour
local result
hour = tonumber(os.date('%H'))
if hour < 12 then
result = 'Bonne matinée !'
elseif hour < 18 then
result = 'Bonne journée !'
else
result = 'Bonsoir !'
end
return result
end
return p
Tester votre nouveau script
[modifier | modifier le wikicode]- Rendez-vous sur "votre page de test".
- Ajouter le code suivant et enregistrer la page:
{{#invoke:Sandbox|conditions}}
Le résultat doit correspondre à ceci :
Bonne matinée!
ou
Bonne journée!
ou
Bonsoir!
en fonction de l'heure actuelle Temps Universel Coordonnée.
Comprendre le nouveau script
[modifier | modifier le wikicode]local
et le code qui suit défini les variableshour
etresult
. Les deux sontnil
.os.date('%H')
retourne l'heure du serveur courant via une valeur comprise entre 0 et 23 sous forme de chaine de caractères. Typiquement l'heure du serveur est réglée sur le temps universel plutôt que sur l'heure locale.tonumber()
Convertit la chaine de caractères en valeur numérique.hour =
Assigne la valeur numérique correspondant à l'heure du serveur à la variablehour
.if hour < 12 then
Marque le début du bloc de code correspondant à une condition et vérifie la valeur dehour
pour déterminer si elle est inférieure à12
. Si la condition est respectée, les instructions suivantes seront exécutées sinon elles seront ignorées.result = 'Bonne matinée!'
Affecte le message 'Bonne matinée' comme valeur de la variable result.elseif hour < 18 then
Une deuxième condition vérifie sihour
est inférieur à18
. Dans l'affirmative le code qui suit sera exécuté sinon il sera ignoré.- Ces conditions sont dites mutuellement exclusives. Si la première est vraie (if), la seconde (elseif) ne sera pas évaluée.
elseif
est optionnel dans la syntaxe d'une condition, et peut Être répété.
else
Contient le code qui sera exécuté si aucune des conditions suivantes n'est respectée. Si une des conditions précédente est respectée les instructions qui suivent ce mot-clé seront ignorées.else
est optionnel dans un bloc de condition.
end
Termine le bloc de code correspondant à la condition.return result
Retourne la valeur contenu dans la variable result comme résultat de la fonction.
Conclusion
[modifier | modifier le wikicode]Félicitations ! Vous êtes capable de créer, tester et comprendre un script Lua qui contient des conditions. Continuez avec la leçon Boucles.
Voir aussi
[modifier | modifier le wikicode]Références
[modifier | modifier le wikicode]Lua for Wikiversity by Dave Braunschweig (en)