Package (クラス)
public Package {inherits open-env, Component}
パッケージ: CURL.LANGUAGE.COMPONENT
直接継承しているサブクラス: OpenPackage

Curl 言語コードのコンテナ。

説明

Package オブジェクトは、すべてのコード オブジェクトのコンテナの役目を果たします。クラスや関数の定義などのコード オブジェクトはそれぞれ少なくとも 1 つの Package オブジェクト内に存在します。

Package は具象クラスですが、Package 型のオブジェクトは import または import-package を使用して Curl パッケージからインポートした場合にのみ作成されます。このようなパッケージはすでに frozen であり変更できません。こうしたオブジェクトで実行できる唯一の操作は、 meta-data または lookup シンボルを調べることです。

サブクラスである OpenPackage は、変更可能な package オブジェクトの作成を目的とする開発者が使用することができます。トップレベルのアプレット コードはすべて OpenPackage のコンテキストで評価されます。

this-package を使用して、コードを現在コンパイル中である Package オブジェクトを取得することができます。get-current-package を使用して、現在実行中のアプレットまたはスクリプトの Package オブジェクトを取得することができます。

プロパティ
imported-packages:このパッケージが直接インポートするパッケージを返します。
アクセサ public final Package.imported-packages:{FastArray-of Package}
プロパティ 継承 Component: error-name, frozen?, id, meta-data, name, source-url, source-url-name, transitive-id

メソッド
add:パッケージ内の名前のバインドを追加します。
public {Package.add
name:StringInterface,
value:any,
type:Type = {type-of value},
access:BindingAccess = BindingAccess.public,
constant?:bool = false
}:void
get-member:名前でパッケージ メンバを検索します。
public {Package.get-member
name:String,
check-imports?:bool = true
}:#PackageMember
get-members:このパッケージからアクセス可能なすべてのパブリック メンバを返します。
public {Package.get-members
check-imports?:bool = true
}:{FastArray-of PackageMember}
get-nonlocal-option:名前で非ローカル オプションを検索します。
public {Package.get-nonlocal-option
name:String,
check-imports?:bool = true
}:#Option
get-nonlocal-options:このパッケージからアクセス可能なすべてのオプションを返します。
public {Package.get-nonlocal-options
check-imports?:bool = true
}:{FastArray-of Option}
lookup:パッケージ内の名前を検索します。
public {Package.lookup
name:StringInterface,
check-imports?:bool = false,
public-only?:bool = false
}:(value:any, found?:bool)
メソッド 継承 Component: assert-not-frozen
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize




プロパティ詳細
imported-packages (アクセサ)
アクセサ public final Package.imported-packages:{FastArray-of Package}

このパッケージが直接インポートするパッケージを返します。






メソッド詳細
add (メソッド)
public {Package.add
name:StringInterface,
value:any,
type:Type = {type-of value},
access:BindingAccess = BindingAccess.public,
constant?:bool = false
}:void

パッケージ内の名前のバインドを追加します。

name: バインドする名前。
value: name にバインドされる値。
type: バインドに関連付けられるコンパイル時の型。既定値は value の型になります。この型は value の型のスーパータイプであることが必要です。
access: バインドのアクセス レベル。既定値は BindingAccess.public です。BindingAccess.privateBindingAccess.protected のような、パッケージのバインドとして意味の通らない値を指定するとエラーになります。
constant?: バインドを定数として作成するかどうかを示します。

改訂

キーワード引数 constant? は Curl 7.0 で追加されました。


get-member (メソッド)
public {Package.get-member
name:String,
check-imports?:bool = true
}:#PackageMember

名前でパッケージ メンバを検索します。

name: 検索する名前。
check-imports?: このフラッグが true の場合、このパッケージがパブリックでインポートした全パッケージも探します。インポートされた複数のパッケージで名前が見つかった場合、AmbiguousNameError をスローします。false の場合、このパッケージで直接定義されたメンバのみを返します。

説明

指定の name を持つ、パッケージのパブリック メンバを表す PackageMember オブジェクトを返します。
一致するパブリック メンバが見つからない場合は null を返します。


get-members (メソッド)
public {Package.get-members
check-imports?:bool = true
}:{FastArray-of PackageMember}

このパッケージからアクセス可能なすべてのパブリック メンバを返します。

check-imports?: このフラッグが true の場合、このパッケージがパブリックでインポートした全パッケージも探します。false の場合、このパッケージで直接定義されたメンバのみを返します。

説明

このパッケージからアクセス可能なすべてのパブリック メンバを表す PackageMember オブジェクトの配列を返します。


get-nonlocal-option (メソッド)
public {Package.get-nonlocal-option
name:String,
check-imports?:bool = true
}:#Option

名前で非ローカル オプションを検索します。

name: 検索する名前。
check-imports?: このフラグが true の場合、このパッケージによってインポートされるすべてのパッケージも検索されます。

説明

指定された name でオプションを表す Option オブジェクトを返します。
一致するオプションが見つからない場合は、null を返します。


get-nonlocal-options (メソッド)
public {Package.get-nonlocal-options
check-imports?:bool = true
}:{FastArray-of Option}

このパッケージからアクセス可能なすべてのオプションを返します。

check-imports?: このフラッグが true の場合、このパッケージがインポートした全パッケージも探します。false の場合、このパッケージで直接定義されたオプションのみを返します。

説明

このパッケージからアクセス可能なすべてのオプションを示す Option オブジェクトの配列を返します。


lookup (メソッド)
public {Package.lookup
name:StringInterface,
check-imports?:bool = false,
public-only?:bool = false
}:(value:any, found?:bool)

パッケージ内の名前を検索します。

name: 検索する名前。
check-imports?: このフラグが true の場合、このパッケージによってインポートされるすべてのパッケージ内も検索されます。インポートされている複数のパッケージで名前が見つかった場合は AmbiguousNameError がスローされます。
public-only?: true の場合はパブリックの名前のみが含まれます。パッケージがフリーズしている場合これは自動的に設定されます。

戻り値

name がパッケージ内でバインドされている場合、最初の戻り値はその値で、2 番目の戻り値は true になります。それ以外の場合は、最初の戻り値が null で 2 番目が false になります。

説明

凍結されたパッケージでは、public-only? が false に設定されていてもパブリック名にしかアクセスできない点に留意してください。