Go言語をゼロから学んでおりその学習メモです。
タイトルに「Part1」とつけましたが、続きを書くかは分かりません。
Goのインストール
下記はMacでHomebrewを使ってインストールする方法です。
brew install go
go version
go version go1.23.5 darwin/arm64
which go
/opt/homebrew/bin/go
- サードパーティのモジュールやパッケージは
$GOPATH
ディレクトリの下にダウンロードされる - コマンドは
$GOPATH/bin
配下にインストールされる -
$GOPATH
はデフォルトではホームディレクトリ配下のgo
ディレクトリを指しています
Goコマンド
go run
-
go run
コマンドを使うと、Goのプログラムをインタプリタ言語のスクリプトのように扱うことができる
hello.go
package main
import "fmt"
func main() {
fmt.Println("Hello, world")
}
go run hello.go
Hello, world
go run
の裏側では以下のような処理が行われる。
-
go run
でバイナリファイルがビルドされ、一次ディレクトリに置かれる - そのファイルを実行する
- プログラムの終了後、そのファイルが削除される
go build
-
再利用できるように実行形式のバイナリファイルを作りたい場合は
go build
コマンドを使う。 -
go build
を実行するとhello
という実行形式ファイルが同じディレクトリに生成される。
go build hello.go
ls -l
total 4392
-rwxr-xr-x 1 kazunori staff 2242786 1 18 17:38 hello
-rw-r--r-- 1 kazunori staff 73 1 18 17:26 hello.go
これを実行すると「Hello, world」が表示される
./hello
Hello, world
バイナリファイルのファイル名や保存場所を変更したい場合は-o
オプションを使う
go build -o hello_world hello.go
ls -l
total 8776
-rwxr-xr-x 1 kazunori staff 2242786 1 18 17:38 hello
-rw-r--r-- 1 kazunori staff 73 1 18 17:26 hello.go
-rwxr-xr-x 1 kazunori staff 2242786 1 18 17:43 hello_world
go mod
- Goの「モジュール」という機能を使うことができる。
// プロジェクトのディレクトリを作成
mkdir hello_world
// モジュールを初期化
cd hello_world
go mod init hello_world
go: creating new go.mod: module hello_world
// `go.mod`というファイルができている
ls -l
total 8
-rw-r--r-- 1 kazunori staff 30 1 18 17:49 go.mod
// `go.mod`のファイルの内容を確認
cat go.mod
module hello_world
go 1.23.5
-
go.mod
ファイルがあるとそのディレクトリに置かれた.go
ファイルを解析してコンパイルしてビルドしてくれる - そのため、
go build
コマンドの引数にファイル名を指定する必要がない
./hello_world
Hello, world
go install
- Goのプログラムはソースが公開されていて、それを
go install
コマンドでインストールできる
go install github.com/rakyll/hey@latest
go: downloading 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
kazunori@mba-2 chapter-1 %
kazunori@mba-2 chapter-1 % ls /Users/kazunori/go/bin
gopls hey staticcheck
- コマンドを実行すると、そのツールのダウンロードとコンパイルを行い
$GOPATH/bin
の下にインストールする
Part1 以上