goreturns?
golangにはフォーマット(コードの見た目)を綺麗にするgofmt
という開発支援ツールがあり,
それにimportの整理機能をつけたgoimports
というものもある.
それに似たgoreturns
なるものがあったからどういうものか,goimports
と何が違うのかを調べた.
goreturns
パッケージ説明には
This tool adds zero-value return values to incomplete Go return statements, to save you time when writing Go. It is inspired by and based on goimports.
と書いてある.
"based on goimports"だから,goimports
の機能+αみたいな感じ.
+αの部分は, "adds zero-value return values to incomplete Go return statements"で,
0の返り値をつけるべき時につけるようだ.
0を返す時ってどんな時?
たしかC言語では関数が正しく実行された時に0を返す慣習があるというのを聞いたような聞かなかったような.
それについて述べられた記事が調べたらあった.
main関数が正常終了したことをシェルに伝えるためにreturn 0; をするようだ.
シェルの終了ステータス0が正常終了という意味.
ということはgolangで0をreturnするのもC言語のそれと同じ意味があるのか?
違った
ここに張ってあるgif画像をよくみると,
returnの値の不足をゼロ値で補完していることがわかる.
golangにおけるゼロ値とは単に0のことを指すのではなく,
string であれば ""
int であれば 0
bool であれば false
といった変数の宣言をした時に最初に入っている値のことを指していることがわかった.
結論
goreturns
はgoimports
の機能に加えて,returnの値をゼロ値で補完する機能がある.
(結局githubに書いてある文言と同じになった)