Re: variable scope
Publié : sam. 01/juil./2017 14:23
À vrai dire c'est le mot "Shared" (partagé) qui trompe.
De ce que j'ai testé et compris (?), "Shared" dans une procédure permet l'accès depuis une procédure à une variable non-globale.
(Ce qui correspond bien à l'aide "Shared permet de rendre une variable, un tableau, une liste ou une map non global accessible depuis une procédure.")
Ça se voit en mettant l'indispensable EnableExplicite
Testez ceci:Ensuite, mettez un ; devant Shared
Ligne 7: Avec 'EnableExplicit', les variables doivent etre explicitement declarees: a
On voit donc bien que "Shared a" a accédé à "a" qu'il ne pouvait pas voir puisque hors procédure et non global

De ce que j'ai testé et compris (?), "Shared" dans une procédure permet l'accès depuis une procédure à une variable non-globale.
(Ce qui correspond bien à l'aide "Shared permet de rendre une variable, un tableau, une liste ou une map non global accessible depuis une procédure.")
Ça se voit en mettant l'indispensable EnableExplicite
Testez ceci:
Code : Tout sélectionner
EnableExplicit
Define a = 10
Procedure Change()
Shared a
a + 20
EndProcedure
Debug a
Change()
Debug a

On voit donc bien que "Shared a" a accédé à "a" qu'il ne pouvait pas voir puisque hors procédure et non global
