Go(Golang)命名規則:完全リファレンス

5 分で読了

Goは可視性ルールによって命名規則を強制します。大文字で始まる名前はエクスポート(公開)、小文字で始まる名前は非エクスポート(非公開)です。

大文字/小文字による可視性

func GetUser() {}  // エクスポート — 他のパッケージからアクセス可能
func getUser() {}  // 非エクスポート — パッケージ内のみ

規則

要素規則
パッケージ小文字、単一の単語http, fmt, json
変数camelCaseuserName, maxRetries
関数(エクスポート)PascalCaseParseJSON
関数(非エクスポート)camelCaseparseJSON
インターフェースPascalCase + -er 接尾辞Reader, Writer, Stringer
構造体PascalCaseHttpClient
定数camelCase または PascalCasemaxSize, StatusOK

Go固有のルール

  • 定数にSCREAMING_SNAKE_CASEは使わない — GoはcamelCase/PascalCaseを使う
  • 頭字語はすべて大文字のまま: HTTPClient, XMLParser, URL
  • ゲッターに「Get」接頭辞を付けない: user.GetName()ではなくuser.Name()
  • パッケージ名をエクスポート名で繰り返さない: http.HttpClientではなくhttp.Client

変換

camelCaseまたはPascalCaseコンバーター。ハブはこちら