2014-09-12 8 views
13

Ho riscontrato un problema nella comprensione del modificatore di accesso interno. Nei miei esempi non sono riuscito a produrre nessuna situazione in cui si comporta diversamente dal pubblico. Anche se creo un barattolo, posso accedere alle funzioni interne nel barattolo dall'esterno del barattolo (da un pacchetto diverso non correlato a quello utilizzato nel barattolo). Nella documentazione viene usato il termine modulo, ma non sono riuscito a scoprire quale sia esattamente un modulo.Scopo del modificatore di visibilità interno in Kotlin

Le mie domande sono quindi:

  1. ciò che è un modulo in Kotlin?

  2. in che modo il modificatore di accesso interno differisce dal moderatore pubblico?

risposta

6

La versione Kotlin compilatore M8 (0.8.11) ignora i moduli, più precisamente, funziona come se tutto il codice sono stati messi nello stesso modulo, questo è il motivo per cui non è possibile ottenere un errore di visibilità per internal .

A partire dalla prossima versione cardine, ogni modulo IDE creato ha il proprio ambito di visibilità e quando si tenta di accedere a una dichiarazione internal da un modulo in un altro, si ottiene un errore. I pubblici, d'altra parte, sono visibili attraverso l'intero progetto.

UPDATE: Questo non è stata attivata in M8, rinviata per dopo

UPDATE: Questo è stato acceso dal later Kotlin milestones and betas

+0

Qual è la definizione di "modulo di IDE" si fa riferimento a? –

+1

In termini IntelliJ IDEA: quando si apre un progetto nell'IDE, è possibile che moduli, ognuno dei quali ha un numero di origini di origine e dipendenze/percorso di classe. –

+1

In termini Eclipse, project = workspace, module = project –

Problemi correlati