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
| Elemento | Convenção | Exemplo |
|---|---|---|
| Pacote | minúsculas, uma única palavra | http, fmt, json |
| Variável | camelCase | userName, maxRetries |
| Função (exportada) | PascalCase | ParseJSON |
| Função (não exportada) | camelCase | parseJSON |
| Interface | PascalCase + sufixo -er | Reader, Writer, Stringer |
| Struct | PascalCase | HttpClient |
| Constante | camelCase ou PascalCase | maxSize, 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 deuser.GetName() - Os nomes de pacote não devem se repetir nos nomes exportados:
http.Clientem vez dehttp.HttpClient
Converter
Conversor para camelCase ou PascalCase. Hub.