Go · Avançado · Português · Técnico
pacote internal
Diretório chamado internal cujo código só pode ser importado por pacotes que estejam na árvore do diretório pai. O compilador impõe essa regra.
Onde usar
Usado para esconder detalhes de implementação de um módulo, impedindo que terceiros dependam deles. É a forma mais forte de encapsulamento entre pacotes.
Em código
meu-app/
go.mod
cmd/api/main.go
internal/db/db.go // só meu-app importa
pkg/util/util.go // qualquer um importaExemplos
Coloquei o acesso ao banco em internal para ninguém de fora importar.
O compilador recusou o import porque o pacote internal é de outro módulo.
Cuidado
Não confunda com identificador não exportado: internal restringe quem importa o pacote, e não os nomes dentro dele.
Sinônimos
diretório internal