Aller au contenu

Paquets internes

Un répertoire internal/ est une convention spéciale. Le code à l’intérieur de internal/ ne peut être importé que par d’autres codes à l’intérieur du même module (ou ses répertoires parents). Cela impose l’encapsulation et empêche l’utilisation externe des détails d’implémentation internes.

Structure de projet avec un paquet interne.

Fenêtre de terminal
monprojet/
├── go.mod
├── internal/
└── aide/
└── aide.go // package aide
└── cmd/
└── monapp/
└── main.go // peut importer internal/aide
// internal/aide/aide.go
package aide
func Aider() string {
return "aide interne"
}
// cmd/monapp/main.go
package main
import (
"fmt"
"monprojet/internal/aide"
)
func main() {
fmt.Println(aide.Aider())
}
Fenêtre de terminal
aide interne