38

Gatling のソース コードを調べているときに、次の構文に遭遇しました。

private[http] def build = {
  // ...
}

角括弧内の構文は何ですか?

IDE でクリックすると、完全修飾パッケージ ( com.excilys.ebi.gatling.http) のエイリアスですが、そのエイリアスが定義された場所が見つかりません。

4

2 に答える 2

37

scala リファレンス、特に 5.2 章を参照してください。一部抜粋:

private 修飾子は、テンプレート内の任意の定義または宣言で使用できます。このようなメンバーには、直接囲んでいるテンプレートとそのコンパニオン モジュールまたはコンパニオン クラス (§5.4) 内からのみアクセスできます。サブクラスには継承されず、親クラスの定義をオーバーライドすることはできません。

修飾子は、定義を囲むクラスまたはパッケージを示す必要がある識別子 C (たとえば、private[C]) で修飾できます。このような修飾子でラベル付けされたメンバーは、それぞれパッケージ C 内のコードからのみ、またはクラス C とそのコンパニオン モジュール内のコードからのみアクセスできます (§5.4)。このようなメンバーは、C 内のテンプレートからのみ継承されます。

于 2013-02-05T11:42:49.267 に答える