🌊
Go言語で関数の戻り値の変数名を何にすればよいか?
Go言語で関数の戻り値の変数名は何にするのが一般的なんだろうという疑問がありました。
そこで、GoでセルフホストされているGo自身はどんな変数名を使用しているのかを、以下のリポジトリをcloneして調べてみました。
調査に使用したコマンド
git grepを使ってreturn
を含む行からタブ文字を除去して、重複する行が多い順に30件出力してみます。
# macOSで実行しています
git grep -h 'return' '*.go' | tr -d "\t" | sort | uniq -c | sort -hr | head -n 30
出力結果です。
18965 return
14426 return true
5504 return false
3545 return nil
2439 return err
1683 return nil, err
895 return 0
634 return n
483 return s
461 return x
436 return ""
402 return -1
359 return r
309 return 0, err
305 return 0, 0
287 return v
271 return 1
264 return nil, nil
256 return a
252 return 0, 1 // Illegal UTF-8: not a continuation byte.
237 return "", err
231 return t
229 return p
224 } // ERROR "missing return"
224 return b
208 return i
190 return c
168 return 0, false
168 return 0, 2 // Illegal UTF-8: not a continuation byte.
162 return n, err
結論
err以外は1文字の変数名が多いですね。
変数が何を指しているかをざっと確認してみると、以下のような感じでした。
結論としては、あまり変数名にこだわらなくてもよいのかなという印象です。
変数名 | 代表的な指示対象 |
---|---|
err | error |
n | 数値, 名前 |
s | 文字列 |
x | 汎用(x, y, zのx?) |
r | rune, reader |
v | 汎用(valueの意味?) |
a | 汎用(a, b, cのa?) |
t | 型 |
p | Pから始まる型 |
b | byte, []byte |
i | 整数型 |
c | カウント, 複素数型 |
Discussion