[..] Variable globale dans une fonction
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.
[..] Variable globale dans une fonction
Bonjour,
Quel est l'intérêt d'une déclaration Global dans une fonction, comme ci dessous - peut-être pour en faire une UDF sans que $stop interfère avec l'appelant?
.---------------------
|Func main()
| Global $stop
| ........
|endfunc
|
|func search(...)
| Global $stop
| .....
|endfunc
|
|func Stop()
| Global $stop
| $stop = True
|endfunc
.-----------------------------------
Quel est l'intérêt d'une déclaration Global dans une fonction, comme ci dessous - peut-être pour en faire une UDF sans que $stop interfère avec l'appelant?
.---------------------
|Func main()
| Global $stop
| ........
|endfunc
|
|func search(...)
| Global $stop
| .....
|endfunc
|
|func Stop()
| Global $stop
| $stop = True
|endfunc
.-----------------------------------
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Variable globale dans une fonction
Ca ne sert à rien, sauf à te compliquer la vie et risquer des bugs inutiles.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: [..] Variable globale dans une fonction
J'ai vu ça dans un post récent de
jbnh » Jeu 30 Juil 2015 13:42
et je pensais qu'il y avait encore une astuce que je ne comprenais pas.
Comme par exemple limiter la portée d'une variable globale au module.
Cordialement
jbnh » Jeu 30 Juil 2015 13:42
et je pensais qu'il y avait encore une astuce que je ne comprenais pas.
Comme par exemple limiter la portée d'une variable globale au module.
Cordialement
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Variable globale dans une fonction
Du tout. Il n'y a malheureusement pas de moyen pour faire ça, sauf à respecter une convention personnelle de type garde-fou mais qui n'empêche rien de façon stricte :
Pour moi, toute variable déclarée locale en tête d'un fichier inclus perso est considérée comme locale à ce fichier, même si sa portée effective est globale.
Code : Tout sélectionner
; MyUdf.au3
Local $_MyUDF_MyLocalVar
...
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Variable globale dans une fonction
Quel intérêt alors de déclarer cette variable en local si dans le script son statut est global ?jchd a écrit :Pour moi, toute variable déclarée locale en tête d'un fichier inclus perso est considérée comme locale à ce fichier, même si sa portée effective est globale.
Dans le script de jbnh je ne vois pas l'intérêt de déclarer $stop en global dans chaque fonction plutôt qu'en global en tête de code
" 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 )
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Variable globale dans une fonction
Moralement, ça m'empêche d'y toucher et d'y avoir accès en dehors de ce que je considère sa portée.Quel intérêt alors de déclarer cette variable en local si dans le script son statut est global ?
Aucun, c'est seulement dangereux.Dans le script de jbnh je ne vois pas l'intérêt de déclarer $stop en global dans chaque fonction plutôt qu'en global en tête de code
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Variable globale dans une fonction
Laquelle portée est globale... j'aime bien le "moralement"jchd a écrit :Moralement, ça m'empêche d'y toucher et d'y avoir accès en dehors de ce que je considère sa portée.
J'en étais sûr à 99% mais le fait que le fichier d'aide autorise explicitement une déclaration en global dans une fonction m'avait fichu le douteAucun, c'est seulement dangereux.
"Global can be used to assign to global variables inside a function, etc"
" 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 )
Re: [..] Variable globale dans une fonction
Ce n'est pas parce que le langage le permet, qu'il faut s'autoriser à l'utiliser.
Ce n'est pas la solution la plus simple qui est la meilleure, c'est la plus claire, la plus lisible, la plus fiable, la plus robuste...
Cordialement, sans haine et sans violence
Ce n'est pas la solution la plus simple qui est la meilleure, c'est la plus claire, la plus lisible, la plus fiable, la plus robuste...
Cordialement, sans haine et sans violence
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Variable globale dans une fonction
Ce qui très souvent revient au même, particulièrement dans le cas présent où la solution la plus simple mais aussi la plus fiable (... etc) est de déclarer la variable globale en tête de script et pas dans les fonctionsmdanielm a écrit :Ce n'est pas la solution la plus simple qui est la meilleure, c'est la plus claire, la plus lisible, la plus fiable, la plus robuste...
" 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 )
