Convenções de nomes em Go (Golang): Referência completa

5 min de leitura

Go impõe convenções de nomes através das suas regras de visibilidade: nomes com inicial maiúscula são exportados (públicos) e com inicial minúscula não são exportados (privados).

Visibilidade conforme a caixa

func GetUser() {}  // Exportada — acessível de outros pacotes
func getUser() {}  // Não exportada — privada do pacote

Convenções

ElementoConvençãoExemplo
Pacoteminúsculas, uma única palavrahttp, fmt, json
VariávelcamelCaseuserName, maxRetries
Função (exportada)PascalCaseParseJSON
Função (não exportada)camelCaseparseJSON
InterfacePascalCase + sufixo -erReader, Writer, Stringer
StructPascalCaseHttpClient
ConstantecamelCase ou PascalCasemaxSize, StatusOK

Regras específicas do Go

  • Sem SCREAMING_SNAKE_CASE para constantes — Go usa camelCase/PascalCase
  • As siglas permanecem todas em maiúsculas: HTTPClient, XMLParser, URL
  • Os getters não usam o prefixo "Get": user.Name() em vez de user.GetName()
  • Os nomes de pacote não devem se repetir nos nomes exportados: http.Client em vez de http.HttpClient

Converter

Conversor para camelCase ou PascalCase. Hub.