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
ifse compila cuando se usa después delif. Si esa rama no se ejecutó, la variable contiene Integer0. - 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.
xyx(…)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