2013-02-05 106 views
23

我遇到下面的語法,同時期待通過加特林源代碼:用方括號私人作用域(私人[...])Scala中

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

什麼是方括號裏面的語法?

當我在我的IDE中點擊它時,它是完全限定包(com.excilys.ebi.gatling.http)的別名,但我找不到定義別名的位置。

回答

28

請參閱the scala reference,具體來說,第5.2章。一些摘錄:

私人修改器可以用於模板中的任何定義或聲明。這些成員只能從直接封閉的模板及其伴隨模塊或伴隨類(第5.4節)中訪問。它們是 未被子類繼承,並且它們可能不會覆蓋父類 類中的定義。

的MODI音響ER可以是合格音響ED與identi音響ER C(例如私人[C])必須 表示一類或包包圍德音響nition。標有 這種修改器的成員只能從包C內的代碼或者只能從C類及其伴隨模塊(§5.4)中的代碼訪問。 這種部件也僅繼承模板內C.

+20

簡而言之:私人[http]使其對於com.excilys.ebi.gatling.http是私密的,而私人[gatling]會使它對com.excilys.ebi.gatling保密。我們讓這些私有的,所以他們不會出現在IDE自動完成。 –

3

簡而言之:這是用於範圍保護

  • 私人[C]表示訪問是專用的「高達」 C ,其中C是對應的包,類或單例對象的 。

同一受保護的[C]

  • 保護的[C]:訪問被保護的 「上升到」 C,其中C是 相應的包,類或單獨的對象。