LOTUSSCRIPT 言語
LotusScript では、次の 3 種類のスコープが認識されます。
異なるスコープで宣言された変数やプロシージャは、同じ名前であっても構いません。そのような名前が参照に使われるとき、LotusScript は最も深いスコープで宣言された変数やプロシージャを参照すると解釈します。
最も深いスコープの外のスコープで宣言される同じ名前の変数やプロシージャには、アクセスできません。この効果は、隠ぺい (シャドウイング) と呼ばれます。つまり、外側の名前の宣言は隠されて、内側の宣言からは見えません。
モジュールスコープ 宣言がモジュール内のプロシージャ、クラス、または型定義の外側にあれば、変数はモジュールのスコープ内で有効になります。モジュールがロードされている間は、変数名は意味のあるものとなります。
変数名はモジュール内でどこからでも参照でき、同じ名前の変数を宣言しているプロシージャ、型、またはクラスの外であれば、宣言で指定された意味を持ちます。
既定では、変数は Private で、それを宣言したモジュールの中でだけ参照できます。他のモジュールから変数を参照するときは、Public として宣言します。他のモジュールが変数を定義しているモジュールにアクセスするには、Use ステートメントを使います。
モジュール間で名前の競合を生じるのは次の場合です。
通常、変数はプロシージャが呼び出されたときに作成され初期化されます。プロシージャが終了すると、変数も削除されます。Static キーワードを使うことによって、その処理を変更できます。
型のメンバ変数の参照は、自動的に Public です。
各クラスのメンバ変数は、Public または Private に宣言できます。Private メンバは、クラスかその派生クラスの中だけで参照されます。クラスのメンバ変数は、既定では Private です。