import および use 文

EGL の import 文および use 文によって、 コード要素の可視性を拡張します。

EGL の import 文および use 文は、 以下の状態の場合に、広く使用されています。

詳しくは、importおよび useを参照してください。

暗黙的インポートおよび使用

EGL で定義されているパーツは、import しなくてもすべて直接参照することができます。 システム・ライブラリーまたは EGL 定義の列挙型関数は、 use しなくても直接参照できます。 したがって、これらのパーツは暗黙的に インポートおよび使用することになります。

例えば、この暗黙的使用により、以下のようにライブラリーを参照せずに sysLib.writeStdOut() システム関数を呼び出すことができます。
writeStdOut("Progam complete.");

カスタマー・リレーション・マネージメント (CRM) パッケージのデータ定義と関数を使用して、受け取り勘定 (AR) パッケージ内のカスタマー情報にアクセスすることができます。 次のコードを使用して、パッケージ com.companyb.crmpackage 内のライブラリー CustomerLib から関数 getCustomer() を呼び出すことができます。
package com.companyb.arpackage;

import com.companyb.crmpackage.*;  // CustomerLib ライブラリーのホーム

program CustomerTest type BasicProgram
use CustomerLib;             // マイ・スコープにこれらの関数を追加します

  function main()
    getCustomer();  
  end

end
以下の例の特徴は重要です。
  • import com.companyb.crmpackage.*; は、 EGL に対して、CRMPackage 全体を現行論理パーツのスコープに収めることを指示します。参照したパーツのみが、コードに追加されます。
  • use 文をコメント化すると、 CustomerLib.getCustomer() 内でのように、関数名にライブラリー名を追加しない限り、プログラムを生成できません。
  • 後で CustomerTest プログラムでローカル関数 getCustomer() を定義すると、 EGL は、com.companyb.crmpackage.CustomerLib 内の同じ名前の関数に優先してその関数を呼び出します。 同様に、ARPackageCRMPackage の両方に CustomerLib という名前のライブラリーがある場合、 EGL はローカル (ARPackage) のバージョンを使用します。

フィードバック