Go(Golang)命名規則:完全リファレンス
5 分で読了
Goは可視性ルールによって命名規則を強制します。大文字で始まる名前はエクスポート(公開)、小文字で始まる名前は非エクスポート(非公開)です。
大文字/小文字による可視性
func GetUser() {} // エクスポート — 他のパッケージからアクセス可能
func getUser() {} // 非エクスポート — パッケージ内のみ
規則
| 要素 | 規則 | 例 |
|---|---|---|
| パッケージ | 小文字、単一の単語 | http, fmt, json |
| 変数 | camelCase | userName, maxRetries |
| 関数(エクスポート) | PascalCase | ParseJSON |
| 関数(非エクスポート) | camelCase | parseJSON |
| インターフェース | PascalCase + -er 接尾辞 | Reader, Writer, Stringer |
| 構造体 | PascalCase | HttpClient |
| 定数 | camelCase または PascalCase | maxSize, StatusOK |
Go固有のルール
- 定数にSCREAMING_SNAKE_CASEは使わない — GoはcamelCase/PascalCaseを使う
- 頭字語はすべて大文字のまま:
HTTPClient,XMLParser,URL - ゲッターに「Get」接頭辞を付けない:
user.GetName()ではなくuser.Name() - パッケージ名をエクスポート名で繰り返さない:
http.HttpClientではなくhttp.Client
変換
camelCaseまたはPascalCaseコンバーター。ハブはこちら。