使うたびにググっていたので。

go build

ソースコードのコンパイルを行う。

  • 通常のパッケージの場合、 go build を行ったあとは何もファイルを生成しない
  • main パッケージの場合、 go build を行ったあとはカレントディレクトリ直下にバイナリファイルが生成される
  • go build は通常、カレントディレクトリにあるすべての go ファイルをコンパイルする。ファイル名を指定することで、単一ファイルのみコンパイルできる
  • -o オプションでコンパイル後に生成されるファイル名を指定できる。デフォルトだとパッケージ名になる
  • go build_. で始まるファイルは無視する
  • -v オプションは、コンパイル中のパッケージ名を出力する

go fmt

ファイルの整形。

go get

リモートパッケージを取得する。正確には、パッケージのダウンロードしてから、 go install を行う。

  • -d オプションは、ダウンロードのみでインストールは行わない
  • -u オプションは、パッケージとその依存パッケージを更新する
  • -f オプションは、 -u を使うときのみ有効で、 import 内の各パッケージが取得されているか検証しない。ローカルにフォークしたパッケージを使いたいときなどに使う

go install

go build して生成されたバイナリファイルを $HOME/bin に移動している。

go test

カレントディレクトリ配下のすべての \*.test.go ファイルのテストを行う。

  • -cover はテストカバー率を表示する

go generate

go build 前にコードを自動で生成する場合に使用する。

go mod

依存モジュールの検知、バージョン固定、バージョンアップ検知ができる。

  • go mod init で初期化する
  • go build で依存モジュールを自動インストールする
  • go get で依存モジュールの追加やバージョンアップを行う
  • go mod tidy で使われていないモジュールを削除する