この関数は、
selector で指定されたパッケージを動的に検索し、ロードおよび初期化を実行します。
指定された
selector に
location-hints が含まれていない場合、既定のコンポーネント マニフェスト (
get-default-manifest を参照) を参照してパッケージの場所を確認します。
import 構文とは異なり、
import-package はパッケージから現在の環境に名前をインポートしません。呼び出し側のコードがパッケージ内のアイテムを使用するには、
lookup メソッドでこれらを検索する必要があります。
現在のプロセス (現在のアプレットまたはスクリプト) にパッケージが初めてインポートされる場合は、グローバル変数のすべてのイニシャライザ、および他のトップレベルのコードが実行され、パッケージが初期化されます。たとえば、次のパッケージを見てください。
{curl 8.0 package}
{package MY-PACKAGE,
version = "1.0"
}
let public my-array:Array = {Array}
{for i = 0 to 10 do
{my-array.append i}
}
パッケージが初期化されると、最初にグローバル変数
my-array に新規の
Array インスタンスが代入され、次に
for ループが実行されて配列に整数を追加します。
次のコード例では、
import-package を使用して前述の例で宣言されたパッケージを動的にインポートし、そのグローバル変数にアクセスする方法を示しています。
let my-package:Package =
{import-package
{make-package-selector
"MY-PACKAGE",
version = "1.0",
location = {url "<somewhere>/my-package.scurl"}
}
}
let my-array:Array = {my-package.lookup "my-array"} asa Array