1

ScalaQueryのソース コードをさまよっていると、そのような宣言が見つかりました (実際には多くの種類があります)。

private[session] val dyn = new DynamicVariable[Session](null)

def forDataSource(ds: DataSource): Database = new Database {
  protected[session] def createConnection(): Connection = ds.getConnection
}

それ[session]はどういう意味ですか?そして、関数内で定義された関数はできないと思いましたprotected...

4

2 に答える 2

3

しかし、中にcreateConnectionはありませんforDataSource、それは中にありますDatabase-前の行のを参照してくださいnew Database {

これは、スコープ内のすべてsession(クラス、オブジェクト、またはパッケージである可能性があります-私にはわかりません)がその定義に加えて、を拡張するクラスを見ることができることを意味しますDatabase

于 2012-04-08T05:15:42.317 に答える
0

private[<scope>]修飾子は「スコープに対してプライベート」を意味します。つまり、(パッケージまたはクラス)スコープに属するクラスのみがメンバーにアクセスできます。

protected[<scope>]このクラスを拡張し、スコープに属するクラスのみメンバーにアクセスできることを意味します。

これらに加えて、 もありますprivate[this]。これは、メンバーがクラスの具体的なインスタンス内でのみ表示されることを意味します。

于 2012-04-08T20:54:14.313 に答える