Aller au contenu principal

Variables

  • Affecter une valeur crée une variable. total = 0; Il n'y a ni mot clé de déclaration ni annotation de type.
  • Une variable doit recevoir une valeur quelque part au-dessus de sa première utilisation dans le texte source, sinon le script ne se compile pas (variable non définie). Cette vérification se fait selon la position dans le texte, et non selon ce qui s'exécute réellement.
  • Ainsi, une variable affectée uniquement dans une branche if se compile lorsqu'elle est utilisée après le if. Si cette branche ne s'est pas exécutée, la variable contient l'Integer 0.
  • Il y a une seule portée par script. Un bloc { } ne crée pas de nouvelle portée. Un compteur de boucle existe toujours après la boucle, avec sa valeur finale, et affecter une valeur à un nom dans un bloc modifie la même variable partout.
  • Les variables vivent le temps d'une exécution du script. Chaque déclenchement commence sans aucune variable, et deux actions qui s'exécutent en même temps ne voient jamais les variables l'une de l'autre. Utilisez Storage pour conserver une valeur d'une exécution à l'autre.
  • Une variable peut porter le même nom qu'une fonction intégrée. x et x(…) se distinguent par la parenthèse, mais il n'est pas recommandé de réutiliser le nom d'une fonction intégrée.
if (MouseGetCursorX() > 500) {
side = "right";
}
UtilityPrint(StringFormat("side = {0}", side, "")); // se compile ; affiche "side = 0" quand la branche ne s'est pas exécutée

for (i = 0; i < 3; i = i + 1) { }
UtilityPrint(StringFormat("i after loop = {0}", i, "")); // 3 -- pas de portée de bloc