Bonjour à tous,
J'ai pour habitude d'écrire mon code en suivant les recommandations de cette page : https://www.autoitscript.com/wiki/Best_coding_practices
J'ai donc appliqué à la lettre le fait d'écrire des variables globales avec $g_
Cependant je me dis aujourd'hui que cela n'a pas vraiment de sens avec les id et les handle.
C'est d'autant plus pénible que lors de la création d'id, s'ils ont une portée locale, il arrive fréquemment que je doive les renommer en ajoutant le préfixe g_ pour m'en servir de façon globale.
Mais dans la documentation officielle c'est utilisé.
Avant de changer ma façon de coder, pouvez-vous m'indiquer si vous utilisez des $g_hGUI, et autres $g_idButton et pourquoi ce choix ?
Utilisation du préfix g_ pour les id et handle
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
Utilisation du préfix g_ pour les id et handle
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
- Nine
- AutoIt MVPs (MVP)
- Messages : 136
- Enregistré le : ven. 17 avr. 2020 01:23
- Localisation : Montréal, Québec
- Status : Hors ligne
Re: Utilisation du préfix g_ pour les id et handle
Personnellement, je n'utilise jamais le préfix $g_. Comme tu l'as constaté, la modification d'une variable de local à global implique de changer le nom de la variable partout dans le script. C'est pas si grave, mais je préfère la nommer avec la déclaration Global ou Local même si je suis dans le scope général. De la sorte, si une variable est nommée Local dans le scope global, je sais que je ne l'ai pas utilisé dans des functions à titre global. Une question de discipline et de principe.
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: Utilisation du préfix g_ pour les id et handle
De toute façon, ce n'est pas considéré comme une bonne pratique. Changer le scope d'une variable en cours de script, ou déclarer une variable en Global dans une fonction, c'est pô recommandé
Il y a la lettre et l'esprit de la lettre, et aussi les scopes qu'AutoIt attribue par défaut aux variables ce qui relativise la précision des déclarations
Une variable déclarée dans le scope général est globale, qu'elle soit déclarée Global ou Local ou sans rien
Une variable déclarée dans une fonction est automatiquement locale, sauf si elle existe déjà (ou peut exister) en Global auquel cas il faut lui coller Local (mais utiliser un même nom pour 2 variables différentes n'est pô recommandé)
Personnellement je n'utilise pas $g_, et j'avoue prendre de grandes libertés avec la 'hungarian notation' . Je ne crée pratiquement jamais une gui principale (avec sa boucle While) dans une fonction, et je considère qu'avoir inclus tous les exemples du fichier d'aide dans des fonctions Example() est une mauvaise idée, ça ne fait qu'embrouiller les esprits plus qu'autre chose
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- jl56
- Niveau 7
- Messages : 415
- Enregistré le : mer. 24 oct. 2007 22:42
- Localisation : 56000
- Status : Hors ligne
Re: Utilisation du préfix g_ pour les id et handle
Bonjour à tous,
Au fil des ans je me suis habitué a mettre comme préfixe le type de control
exemple inp_ pour un input, but_ pour un bouton , combo_ , list_ ,tab_, menu_ etc..
si bien que c'est plus rapide et compréhensible pour la réalisation de mes scritps.
exemple si on tape but_ l'éditeur va proposer la liste des boutons idem pour inp_ et autre
ça me permet de faire une famille de control pour une action donnée.
au début de script je déclare toutes mes variables global ou local selon le besoin
je ne sais pas si je répond à la question mais ça reste un exemple de nommage des controles
A+
JL56
Au fil des ans je me suis habitué a mettre comme préfixe le type de control
exemple inp_ pour un input, but_ pour un bouton , combo_ , list_ ,tab_, menu_ etc..
si bien que c'est plus rapide et compréhensible pour la réalisation de mes scritps.
exemple si on tape but_ l'éditeur va proposer la liste des boutons idem pour inp_ et autre
au début de script je déclare toutes mes variables global ou local selon le besoin
je ne sais pas si je répond à la question mais ça reste un exemple de nommage des controles
A+
JL56