名前付きモジュール
使い方
module ModuleName() export eseq; local lseq; global gseq; option optseq; description desc; statseq end module
|
説明
|
|
•
|
特殊な状況のもとでは、モジュールのメンバー自身がどのモジュールに属しているかを「知る」必要があるかもしれません。これに対応するために、モジュール定義の第2の構文を使って、名前付きのモジュールを生成することができます。通常の構文との違いは、キーワードの module とそれに続く括弧の間に名前を配置することだけです。
|
•
|
名前付きモジュールの定義を評価すると、その副作用として、その結果生じたモジュールに名前が割り当て、このモジュール名が各モジュールのメンバーの属性として保存されます。
|
•
|
注意: この結果として、指定した名前が保護されることになります。すなわち、名前付きモジュール定義を2回以上評価すると、エラーになるでしょう。
|
•
|
名前付きモジュールは、ある目的のために、システムによっても利用されています。倉庫に保存されているどのモジュールにも、正確に保存しておけるよう(保存するときに指定した)名前が付けられています。
|
|
|
例
|
|
>
|
module MyModule()
export e;
e := 2;
end module;
|
| (2.1) |
| (2.2) |
>
|
type( MyModule, 'protected' );
|
| (2.3) |
>
|
module aModule() end module;
|
| (2.4) |
>
|
module aModule() end module;
|
Error, (in aModule) attempting to assign to `aModule` which
is protected
| |
名前付きモジュールを導入する唯一の理由は、モジュールの名前を出力表示するような場合に、次に示すような区別ができるからです。
>
|
module NamedModule() export e1; end module:
use NamedModule in
e1;
end use;
|
>
|
UnNamedModule := module() export e2; end module:
use UnNamedModule in
e2;
end use;
|
|
|
Download Help Document
Was this information helpful?