Notes sur les Fonctions

Les Fonctions dans AutoIt sont des objets d'une classe primaire. Au delà d'autres choses, cela signifie que vous pouvez assigner une fonction à une variable, la passer comme argument ou en faire une valeur de retour d'une autre fonction.
A part une certaine portée spécifique - au regard des règles de déclaration (les noms des fonctions intégrées sont réservés et les fonctions UDF peuvent être surchargées seulement localement), les noms des fonctions n'ont pas de statut spécial dans le langage.

#include <MsgBoxConstants.au3>

Local $vFunc = MsgBox

$vFunc($MB_OK, "Hi there!", "Lovely day today.")



Paramètres optionnels

Beaucoup de fonctions contiennent des paramètres optionnels qui peuvent être omis. Si vous souhaitez spécifier un paramètre optionnel, vous devrez impérativement spécifier tous les paramètres qui le précèdent !
Par exemple, considérons Run ( "filename", ["workingdir" [, flag]] ). Si vous voulez spécifier flag, vous devez spécifier workingdir.

Quand un paramètre optionnel doit être défini et qu'il est précédé par un ou plusieurs paramètres optionnels, la valeur par défaut doit être donnée pour ce paramètre. De manière générale, les fonctions devraient accepter le mot-clé Default lorsque vous souhaitez utiliser le paramètre par défaut. Voir la description du paramètre optionnel correspondant pour plus de détails.


Beaucoup de fonctions Win___ contiennent un paramètre optionnel "text". Ce paramètre est sensé vous aider à différencier les fenêtres qui ont un titre identique.

Indication de succès ou d'échec d'une fonction

Quelques fonctions indiquent le succès ou l'échec comme valeur de retour; d'autres l'indiquent en positionnant le flag @error. Et d'autres utilisent les deux ...

Si la méthode Return value est utilisée, le fichier d'aide indiquera les valeurs attendues pour le succès et l'échec - mais la valeur du succès est typiquement non nulle pour permettre une lecture faciile du code...

If SomeUserFunc() Then ;...si la fonction a réussi.
If Not SomeUserFunc() Then ;...si la fonction a échoué.

Local $sFileRead = FileReadLine("C:\someFile.txt")
If @error = -1 Then ; La fin du fichier a été atteinte.



Si une fonction utilise l'indicateur d'erreur @error, vous devez toujours le tester immédiatement après le retour de la fonction car @error sera réinitialisé à 0 lors de l'appel de la fonction suivante. Si @error n'est pas nul, ne tentez pas d'utiliser ou d'accéder à la valeur de retour de la fonction, car dans ce cas la valeur de retour est généralement indéfinie ...