ローカル
スコープを持つ変数は、キーワード Local を使って宣言します。Local に続けて、末尾に Var が付いたデータ型の名前を指定し、さらに変数名を指定します。
ローカル変数が使用されるのは、1 つの式の 1 回ずつの評価の間に限られます。つまり、ある式から別の式のローカル変数の値にアクセスすることはできません。
例
//Formula A Local NumberVar x; x := 10; //Formula B EvaluateAfter ({@Formula A}) Local NumberVar x; x := x + 1;
EvaluateAfter({@Formula A})関数を呼び出すと、必ず Formula A が評価されてから Formula B が評価されます。Formula A は値 10 を返し、Formula B は値 1 を返します。Formula B は Formula A の x にアクセスできないため、値 10 を使用することも、1 を加算することもできません。その代わり、Formula B は、初期化されていないローカル変数 x のデフォルト値 0 を使用し、それに 1 を加えて 1 を得ます。
別の式の中には、名前は同じで型が異なるローカル変数を作成することもできます。たとえば、Formula A と Formula B で型の宣言は衝突しません。
//Formula C Local StringVar x := "hello";
3 つのスコープのうち、最も効率的なのはローカル変数です。ローカル変数は、別の式の別のローカル変数と衝突することもありません。したがって、変数はできる限りローカルとして宣言するのが適切です。