« Initiation au Lua avec Scribunto/Gestion de l'environnement » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (- qu'à + qu’à )
m Robot : Remplacement de texte automatisé (- d'utiliser + d’utiliser )
Ligne 8 :
}}
 
Dans ce chapitre, nous allons étudier quelques aspects plus liés avec l'utilisateur et l'intégration du Lua dans un des projets wikimédia, c'est-à-dire Scribunto. Nous commencerons par la gestion des erreurs. Nous verrons ensuite quelques commandes utiles permettant d'utiliserd’utiliser un module dans le but de réaliser une certaine fonction.
__TOC__
{{Clr}}
Ligne 106 :
==== Gestion à l'aide de pcall ====
 
Une autre façon de gérer les erreurs pouvant se produire à l'appel d'une fonction est d'utiliserd’utiliser la fonction '''pcall''' dont le rôle est justement de gérer les erreurs à l'appel d'une fonction. Il suffit d'invoquer la fonction en lui donnant comme paramètres : le nom de la fonction, ses paramètres et le message d'erreur s'il y a problème.
 
Pour tester cette fonction écrivons, dans le [[module:Balance]] une nouvelle fonction p.alerte6 ainsi :
Ligne 267 :
Le principal intérêt de cette possibilité va être de pouvoir se confectionner des modules contenant des fonctions qui peuvent être utiles dans plusieurs autres modules en évitant ainsi de devoir les réécrire dans chaque module.
 
La fonction préprogrammée qui va nous permettre d'appeler le contenu d'un autre module est la fonction '''require'''. Il y a deux façons d'utiliserd’utiliser la fonction '''require''' selon que l’on souhaite récupérer des objets, dans un autre module, qui ne se trouve pas dans la table que l’on a pris l'habitude d'appeler '''p''' (mais qui pourrait s'appeler autrement) ou que l’on souhaite récupérer des objets qui sont dans une table '''p'''.
 
 
Ligne 319 :
</syntaxhighlight>
 
La grosse différence avec ce que l’on avait l'habitude de voir est que l’on ne trouve pas '''frame''' entre les parenthèses de la fonction '''p.cube''' puisque, cette fois, nous n'avons pas l'intention d'utiliserd’utiliser la commande '''#invoke'''. À part cela, le reste est identique !
 
{{Encart