Conventions de nommage Go (Golang) : Référence complète
5 min de lecture
Go impose des conventions de nommage via ses règles de visibilité : les noms avec majuscule initiale sont exportés (publics), ceux en minuscule ne sont pas exportés (privés).
Visibilité selon la casse
func GetUser() {} // Exportée — accessible depuis d'autres packages
func getUser() {} // Non exportée — privée au package
Conventions
| Élément | Convention | Exemple |
|---|---|---|
| Package | minuscules, un seul mot | http, fmt, json |
| Variable | camelCase | userName, maxRetries |
| Fonction (exportée) | PascalCase | ParseJSON |
| Fonction (non exportée) | camelCase | parseJSON |
| Interface | PascalCase + suffixe -er | Reader, Writer, Stringer |
| Struct | PascalCase | HttpClient |
| Constante | camelCase ou PascalCase | maxSize, StatusOK |
Règles spécifiques à Go
- Pas de SCREAMING_SNAKE_CASE pour les constantes — Go utilise camelCase/PascalCase
- Les acronymes restent en majuscules :
HTTPClient,XMLParser,URL - Les getters n'utilisent pas le préfixe « Get » :
user.Name()plutôt queuser.GetName() - Les noms de package ne doivent pas se répéter dans les noms exportés :
http.Clientplutôt quehttp.HttpClient
Convertir
Convertisseur camelCase ou PascalCase. Hub.