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

Contenu supprimé Contenu ajouté
rédaction
Ligne 100 :
Nous voyons que nous obtenons une réponse appropriée dans tous les cas de figure.
 
<br />
 
== Rapidité d'exécution d'un programme ==
Ligne 211 ⟶ 212 :
 
Nous voyons maintenant clairement que la meilleure des trois fonctions est bien la troisième et la plus mauvaise est bien la première.
 
<br />
 
== Comment utiliser des fonctions écrites dans un autre module ==
Ligne 219 ⟶ 222 :
 
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'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'''.
 
 
==== Première façon : On souhaite récupérer des objets indépendants de la table p ====
Ligne 301 ⟶ 305 :
 
'''<nowiki>{{#invoke:Ingère|compo|3}}</nowiki>''' nous donne alors : {{#invoke:Ingère|compo|3}}
 
<br />
 
== Priorité de l'interpréteur ==
 
En général, l'endroit le plus adéquat d'appeler un module est de la faire à partie d'un modèle. Ceci est fortement conseillé pour éviter de surcharger l'espace principal avec la commande '''#invoke'''. Par conséquent, le plus souvent, les modèles appelleront les modules. Quelquefois, on risque de devoir faire le contraire. C'est à dire d'appeler un modèle dans un module. Que ce passe t'il alors. Nous allons tester cette opération en prenant un exemple. Essayons d'écrire un module qui aurait pour fonction d'encadrer un texte en faisant appel au [[modèle:Encadre]]. Dans un [[module:Cadre]], nous serions tenté d'écrire une fonction cadre1 ainsi :
 
 
'''<nowiki>{{#invoke:Cadre|cadre1|Coucou, je suis dans un cadre}}</nowiki>''' nous donne : {{#invoke:Cadre|cadre1|Coucou, je suis dans un cadre}}