← Go コース
5. gofmt と標準ツール — 整形と静的検査の思想
Go にはコードの見た目を統一するための公式整形ツール gofmt が標準で付属します(go fmt はこれを呼び出すラッパーです)。インデントや空白の入れ方、波かっこの位置といったスタイルは gofmt が機械的に決めるため、Go のコードはどのプロジェクトでもほぼ同じ見た目になります。スタイルを議論する必要がない、というのが Go の重要な思想です。
もう一つよく使うのが go vet です。これはコンパイルは通るものの怪しい書き方、たとえば Printf の書式指定子と引数の型が合っていない、といった問題を静的に検出します。コンパイラが見つけられないバグの芽を早めに知らせてくれるツールです。
これらは「正しい唯一のスタイルをツールに任せ、人間は中身に集中する」という Go の方針を体現しています。エディタ保存時に gofmt を自動で走らせる設定が一般的で、手で整形を気にすることはほとんどありません。
サンプルコード(フレームワーク環境が必要なため表示のみ)
# 整形・検査に使う標準ツール
#
# gofmt -w main.go … ファイルを公式スタイルに上書き整形する
# go fmt ./... … モジュール全体を整形する(gofmt のラッパー)
# go vet ./... … 怪しいコードを静的に検査する
#
# Go のスタイルはツールが機械的に決めるため、見た目で悩む必要がない。