💬
Goの基本(goコマンド)
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