具有局部作用域的变量是使用 Local 关键字 + 类型名称(带有后缀 Var)+ 该变量名声明的。
局部变量只限于单个公式以及该公式的单个求值。也就是说,无法从其他公式访问某个公式中的局部变量值。
示例
//Formula A Local NumberVar x; x := 10; //Formula B EvaluateAfter ({@Formula A}) Local NumberVar x; x := x + 1;
函数调用 EvaluateAfter ({@Formula A}) 确保公式 B 在公式 A 之后求值。公式 A 返回一个值 10,公式 B 返回一个值 1。公式 B 无法访问公式 A 中的 x,因此不能使用值 10 来加 1;对于公式 B 中未初始化的局部变量 x,公式 B 改用默认值 0,因此加 1 后便得到 1。
也可以在不同的公式中使用相同的名称、不同的样式创建局部变量。例如,公式 A 和公式 B 中的类型声明与下列内容不冲突:
//Formula C Local StringVar x := "hello";
局部变量是三种作用域中最有效的。另外,它们在不同的公式中互不干扰。因而,只要可能最好将变量声明为局部变量。