define-alias (マクロ)
パッケージ: CURL.LANGUAGE.COMPILER

他のトップレベルの名前のエイリアスを定義します。

シグネチャ

{define-alias [access] alias = qualified-name [, ...] }
access: public または package。指定がない場合は package が既定です。
alias: エイリアス名。qualified-name と同じ要素を参照します。
qualified-name: 現在のパッケージ内でアクセス可能な名前。パッケージ名を使用できます。

説明

パッケージ内でアクセス可能な他の名前の "alias" を作成します。エイリアスは構文上、オリジナル名とまったく同様に使用できます。Curl の他のトップレベルの定義式と同様に、エイリアス名は {import * from ...} 式を使用して暗黙的にインポートされた名前をバックグラウンドで隠します。

エイリアスは次のような状況で有効に使用できます。

  1. 極端に長い名前の略記法として使用します。特に、パッケージの修飾名が必要な場合に利用します。
  2. {import * from ...} を使用して複数のパッケージから暗黙的にインポートされた同じ名前のインスタンスを明確に区別します。
  3. 他のパッケージからインポートされた特定の記号を選択して再エクスポートします。


import 式のドキュメントも参照してください。

この式は、Curl ソースのトップレベルでのみ使用できます。

{package BOBS-PACKAGE}

{define-class public MyClass ...}
...

{package MARYS-PACKAGE}

{define-class public MyClass ...}
...

{package MY-PACKAGE}

{import * from BOBS-PACKAGE}
{import * from MARYS-PACKAGE}

{define-alias public 
    BobsClass = BOBS-PACKAGE.MyClass,
    MarysClass = MARYS-PACKAGE.MyClass
}

{define-class public MyClass {inherits BobsClass, MarysClass}
  ...
}