2013-02-05 14 views
23

ho incontrato la seguente sintassi mentre guardando attraverso il codice sorgente Gatling:scoping privato con parentesi quadre (privato [...]) in Scala

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

Qual è la sintassi all'interno delle parentesi quadre?

Quando faccio clic su di esso nel mio IDE è un alias di un pacchetto completo (com.excilys.ebi.gatling.http) ma non riesco a trovare dove è stato definito tale alias.

risposta

28

Vedi the scala reference, in particolare, il capitolo 5.2. Alcuni estratti:

Il Modificatore privato può essere utilizzato con qualsiasi definizione o dichiarazione in un modello. È possibile accedere a tali membri solo dal modello che lo racchiude direttamente e dal suo modulo compagno o classe compagno (§5.4). Sono non ereditate dalle sottoclassi e non possono ignorare de fi nizione di genitore classi.

La modi fi catore può essere qualificata fi cati con un identi fi catore C (ad esempio privata [C]) che deve denotano una classe o un pacchetto che racchiude la de fi nizione. Membri etichettati con tale er modi fi sono accessibili rispettivamente solo dal codice all'interno della confezione C o solo dal codice all'interno della classe C e di un modulo guidata (§5.4). Tali elementi sono ereditati solo modelli all'interno C.

+20

In breve: privato [http] rendilo privato per com.excilys.ebi.gatling.http mentre privato [gatling] lo renderebbe privato per com.excilys.ebi.gatling. Li rendiamo privati ​​in modo che non vengano visualizzati nel completamento automatico IDE. –

3

In breve: questo è usato per protezione portata:

  • privato [C] significa che l'accesso è privata "fino a" C , dove C è il pacchetto corrispondente, classe o oggetto singleton .

Stessi protetto [C]

  • protette [C]: l'accesso è protetta "fino a" C, dove C è il corrispondente pacchetto, classe o un oggetto singleton.