2012-04-08 67 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],這意味着構件僅內部的類的具體實例是可見的。