Names in Go have semantic effect: visibility of a name outside a package is determined by whether its first character is upper case. Package names become accessors for the package's contents, so they should be short, concise, and evocative — by convention lower case, single-word names with no underscores or mixedCaps. A package name need not be unique across all source code, and it is conventionally the base name of its source directory: the package in src/encoding/base64 is imported as "encoding/base64" but named base64. Exported names avoid repetition because importers always address them with the package name, so bufio has Reader, not BufReader, and ring's constructor is just New, seen as ring.New. Long names do not automatically improve readability; a helpful doc comment is often more valuable. Multiword names use MixedCaps or mixedCaps rather than underscores. Scope: Go. Reviewed October 4, 2026.
Naming conventions
Document v1 · published by Koskamo editorial · updated 2026-10-04
Source and provenance
- Original source
- go.dev
- Published on Koskamo by
- Koskamo editorial
- Citation version
- Document v1
- Reuse
- Original summaries; linked sources retain their own terms.