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émentConventionExemple
Packageminuscules, un seul mothttp, fmt, json
VariablecamelCaseuserName, maxRetries
Fonction (exportée)PascalCaseParseJSON
Fonction (non exportée)camelCaseparseJSON
InterfacePascalCase + suffixe -erReader, Writer, Stringer
StructPascalCaseHttpClient
ConstantecamelCase ou PascalCasemaxSize, 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 que user.GetName()
  • Les noms de package ne doivent pas se répéter dans les noms exportés : http.Client plutôt que http.HttpClient

Convertir

Convertisseur camelCase ou PascalCase. Hub.