Convenciones de nombres en Go (Golang): Referencia completa
5 min de lectura
Go impone convenciones de nombres mediante sus reglas de visibilidad: los nombres en mayúscula inicial se exportan (públicos) y los de minúscula inicial no se exportan (privados).
Visibilidad según mayúsculas
func GetUser() {} // Exportada — accesible desde otros paquetes
func getUser() {} // No exportada — privada del paquete
Convenciones
| Elemento | Convención | Ejemplo |
|---|---|---|
| Paquete | minúsculas, una sola palabra | http, fmt, json |
| Variable | camelCase | userName, maxRetries |
| Función (exportada) | PascalCase | ParseJSON |
| Función (no exportada) | camelCase | parseJSON |
| Interfaz | PascalCase + sufijo -er | Reader, Writer, Stringer |
| Struct | PascalCase | HttpClient |
| Constante | camelCase o PascalCase | maxSize, StatusOK |
Reglas específicas de Go
- Sin SCREAMING_SNAKE_CASE para constantes — Go usa camelCase/PascalCase
- Las siglas se mantienen en mayúsculas:
HTTPClient,XMLParser,URL - Los getters no usan el prefijo «Get»:
user.Name()en lugar deuser.GetName() - Los nombres de paquete no deben repetirse en los nombres exportados:
http.Clienten lugar dehttp.HttpClient
Convertir
Conversor a camelCase o PascalCase. Hub.