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

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (-\b([Cc][’'])est +[àa] +dire\b +\1est-à-dire)
m Robot : Remplacement de texte automatisé (-\boeuvre(s?|r?)\b +œuvre\1)
Ligne 61 :
==== Gestion programmée de l'erreur ====
 
Comment remédier à ce problème ? Il nous suffit simplement d'éviter que la variable poids soit comparée à un nombre lorsqu'elle contient '''nil''' et que dans ce cas la fonction nous retourne un message d'erreur informant l'utilisatrice de l'erreur qu'elle a commise. Nous devons donc encore perfectionner notre programme en écrivant une nouvelle fonction '''p.alerte5''' qui met en oeuvreœuvre ce que l'on vient de dire :
 
<syntaxhighlight lang="lua">
Ligne 165 :
Cette façon d'écrire le programme, bien que fonctionnant parfaitement, n'est pas correcte. Pourquoi ?
 
En fait, lorsqu'on écrit '''frame.args[1]''', on fait appel à la valeur de x que nous a fourni l'utilisateur dans la commande #invoke et qui est donc quelque chose d'extérieur au programme. Allez chercher cette valeur met en oeuvreœuvre des routines qui sont, à elles seules, des programmes qu'il faut appeler et exécuter. tout cela demande du temps. On comprend donc aisément qu'écrire quatre fois '''frame.args[1]''' va demander un temps d'exécution plus long que si l'on ne l'écrivait qu'une seule fois. Il est donc bien préférable d'écrire la fonction en s'arrangeant pour n'avoir qu'une seule exécution de '''frame.args[1]'''. À la première façon d'écrire le programme, nous préférerons donc la deuxième façon suivante :
 
<syntaxhighlight lang="lua">