变量
- 赋值即创建变量。
total = 0;没有声明关键字,也没有类型注解。 - 变量必须在源文本中其首次使用位置的上方某处被赋值,否则脚本无法编译(未定义的变量)。这是按文本中的位置检查的,而不是按实际运行的内容检查。
- 因此,仅在某个
if分支内赋值的变量,在该if之后使用时可以通过编译。如果该分支没有运行,变量的值为 Integer0。 - 每个脚本只有一个作用域。
{ }块不会创建新的作用域。循环计数器在循环结束后仍然存在,并保留其最终值;在块内给某个名称赋值,改变的是所有位置上的同一个变量。 - 变量只在脚本的一次运行中存在。每次分派开始时都没有任何变量,同时运行的两个操作永远看不到彼此的变量。要在多次运行之间保留值,请使用 Storage。
- 变量可以与内置函数同名。
x和x(…)通过括号区分,但不建议重用内置函数的名称。
if (MouseGetCursorX() > 500) {
side = "right";
}
UtilityPrint(StringFormat("side = {0}", side, "")); // 可以编译;分支未运行时打印 "side = 0"
for (i = 0; i < 3; i = i + 1) { }
UtilityPrint(StringFormat("i after loop = {0}", i, "")); // 3 -- 没有块作用域