2012-04-08 54 views
1

通过ScalaQuery源代码徘徊,我发现这样的声明(很多的那种其实):Scala中的protected [session]是什么意思?

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

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

是什么[session]是什么意思?而且我认为一个函数中定义不能protected功能...

回答

3

createConnection是不是里面forDataSource,它里面Database - 看到前行的new Database {

这意味着,在范围session(这可能是一类,对象或包 - 我不知道)都可以看到清晰,加上延长Database类。

+0

在这种情况下的会话是包的范围 – virtualeyes 2012-04-08 07:08:24

0

private[<scope>]改性剂的意思是“私人的范围”,即,仅属于(包或类)范围类访问该构件。

protected[<scope>]意味着只有扩展此类类属于范围访问该构件。

除了这些,还有private[this],这意味着构件仅内部的类的具体实例是可见的。