徘徊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
...
答案 0 :(得分:3)
但createConnection
不在forDataSource
内,而在Database
内 - 请参阅上一行的new Database {
?
这意味着范围session
(可能是类,对象或包 - 我不知道)中的所有内容都可以看到该定义,以及扩展Database
的类。 / p>
答案 1 :(得分:0)
private[<scope>]
修饰符表示“范围的私有”,即只有属于(包或类)范围的类才能访问该成员。
protected[<scope>]
表示只有扩展此类和的类属于范围才能访问该成员。
除此之外,还有private[this]
,这意味着该成员仅在该类的具体实例中可见。