Saltar al contenido principal

Variables

  • Asignar crea una variable. total = 0; No hay palabra clave de declaración ni anotación de tipo.
  • Una variable debe asignarse en algún lugar por encima de su primer uso en el texto fuente, o el script no se compila (variable no definida). Esto se comprueba por posición en el texto, no por lo que realmente se ejecuta.
  • Por eso, una variable asignada solo dentro de una rama if se compila cuando se usa después del if. Si esa rama no se ejecutó, la variable contiene Integer 0.
  • Hay un solo ámbito por script. Un bloque { } no crea un ámbito nuevo. Un contador de bucle sigue existiendo después del bucle con su valor final, y asignar a un nombre dentro de un bloque cambia la misma variable en todas partes.
  • Las variables duran una ejecución del script. Cada ejecución empieza sin ninguna, y dos acciones que se ejecutan al mismo tiempo nunca ven las variables de la otra. Use Storage para conservar un valor entre ejecuciones.
  • Una variable puede tener el mismo nombre que una función integrada. x y x(…) se distinguen por el paréntesis, aunque no se recomienda reutilizar el nombre de una función integrada.
if (MouseGetCursorX() > 500) {
side = "right";
}
UtilityPrint(StringFormat("side = {0}", side, "")); // se compila; imprime "side = 0" cuando la rama no se ejecutó

for (i = 0; i < 3; i = i + 1) { }
UtilityPrint(StringFormat("i after loop = {0}", i, "")); // 3 -- sin ámbito de bloque