-
Notifications
You must be signed in to change notification settings - Fork 0
Go Style Rule
Takuto NAKAMURA (Kyome) edited this page Feb 12, 2024
·
1 revision
このコーディング規約は、LEADYOUをGoで実装するに当たり、読みやすく統一性のあるコードにするために定められています。
参考は渋川よしき、辻大志郎、真野隼記によって書かれた『実用 Go言語』(オライリー・ジャパン発行、ISBN978-4-87311-969-4)の第一章です。
この章の内容を、ほぼ、そのままの内容を用いていますが、必要であると感じたところに独自に例を追加しています。
Goには命名規則についてはEffective Goに公式見解が書かれています。
用いる場面で多少変化しますが、原則はアンダースコア(_)を用いずMixedCaps(キャメルケースやパスカルケースを包括する名称)を用います。
- 他のパッケージから参照できる変数:パスカルケース(例:CardNumber)
- パッケージ内からのみ参照できる変数:キャメルケース(例:cardNumber)
ただし、URLやIDなどの頭字語は、URLやurlのように、全て大文字か小文字で記載します。
エラーの変数名は、例えば"dbError"のように、変数名の最後に"Error"をつけます。
Goの変数名は出来るだけ短い名前が好まれますが、どんなときにも短ければいいわけではありません。
宣言している箇所と離れた場所で用いられる変数やグローバル変数については、説明的な変数名を付ける必要があります。
ここでの注意は、後に説明するレシーバー名との区別です。
例えば、以下の例ではtがレシーバー名となっており、resultは変数名です。レシーバー名は意味がなくても、一文字や二文字で表されるのが好ましいとされますが、変数名は意味が分かるほうが望ましいです。
func TestCal(t *testing.T) {
result := Calculate(2)
if result != 2*2 {
t.Fatal("calculateの答えが違うよ。")
}
}