GLOBAL

Instruction

Syntaxe

Déclare une variable partagée par tout le programme, FUNCTION comprises. S'écrit partout, même dans une FUNCTION.

GLOBAL <name> [= <value>]
GLOBAL <name> AS <type> [= <value>]
GLOBAL <name>, <name>[, <name>…]
GLOBAL NewList <name>.<type>()
GLOBAL NewMap <name>.<type>()

Les éléments

<name>Le nom de la variable. Dans la forme en liste, un nom en $ part de "", les autres de 0.
<value>Valeur de départ facultative : n'importe quelle expression.
<type>Un type de nombre, de texte ou d'enregistrement pour AS ; le type des éléments pour NewList et NewMap.

À savoir

  • Dans un programme avec DO … LOOP, une FUNCTION ne voit ni les variables simples, ni les variables typées, ni les listes ou maps créées au-dessus de DO. GLOBAL règle le problème : déclarez avec GLOBAL toute valeur partagée avec une fonction.
  • Donnez une valeur à un GLOBAL seul. GLOBAL hits sans valeur part vide, pas de 0, et hits + 1 donne alors NaN. La forme en liste GLOBAL a, b$ part de 0 et de "".
  • Un GLOBAL dans une FUNCTION crée la variable pour tout le programme : on peut la lire après l'appel.
  • Sous OPTION EXPLICIT, GLOBAL compte comme une déclaration.
  • GLOBAL DIM n'est pas fiable : écrivez un simple DIM en haut du programme.

Exemple

GLOBAL score = 0GLOBAL lives AS integer = 3GLOBAL name$, levelFUNCTION AddPoints(points)  score = score + pointsENDFUNCTIONAddPoints(10)AddPoints(5)Console(Str(score) + " " + Str(lives) + " [" + name$ + "] " + Str(level))   ' 15 3 [] 0
Dans le manuel : Variables et types