💬

Goの基本(goコマンド)

2025/03/09に公開

goコマンド

go run

goのソースファイルを指定して実行する。
内部的には、実行形式ファイルが一時領域にビルドされ、プログラム実行後
に削除されるという処理がされている。

go run {ソースファイル}

hello.go
package main

import "fmt"

func main() {
	fmt.Println("Hello, world!")
}
$ go run hello.go 
Hello, world!

go build

ソースファイルから、実行形式のバイナリファイルをビルドする。

go build {ソースファイル}

ソースファイルを指定した場合はソースファイル名が実行ファイル名に使用される

$ go build hello.go 
$ ./hello 
Hello, world!

go build -o {出力ファイル名} {ソースファイル}

実行ファイル名を指定したい場合は-oオプションで指定する。

$ go build -o sample hello.go 
$ ./sample 
Hello, world!

go mod

go mod init {任意のモジュール名}

ソースをモジュール化する際に実行する。
実行後、go.modというモジュール名や依存関係を記載するファイルが作成される。

$ go mod init hoge
go: creating new go.mod: module hoge
go: to add module requirements and sums:
        go mod tidy
$ cat ./go.mod 
module hoge

go 1.24.0

go.modファイルがある場合、ソースファイルを指定しなくても、そのディレクトリにあるgoファイルを解析してビルドを実行してくれる。実行ファイル名にはモジュール名が使用される。

go mod tidy

ソースコードを解析し、必要なライブラリダウンロード、不必要なファイルの削除等を行ってくれる。

$ go mod tidy

go install

ソースが公開されているモジュールをインストールする。
コマンドを実行すると、ダウンロードとコンパイルを行い、$GOPATH/bin の下(GOPATHを設定していなければホームディレクトリの下のgo/binの下)にインストールされる。

go install {ソースコードリポジトリ}@version

$ go install github.com/rakyll/hey@latest
github.com/rakyll/hey v0.1.4
go: downloading golang.org/x/net v0.0.0-20181017193950-04a2e542c03f
go: downloading golang.org/x/text v0.3.0

Discussion