Go 版 Hello world

ここでは開発環境の確認と、Go プログラムの簡単な実行方法を学ぶため、 Hello, world! という文字を出力するだけの簡単なプログラムを作成してみましょう。

Go 開発環境の確認

Go で簡単なプログラムを作る前に、まずは Go のインストールを確認しましょう。

ターミナルから go version を実行し、Go のバージョンが表示されれば OK です。

go version
go version go1.16.4 darwin/amd64

Go ツールのインストールについては「Go の開発環境」を参考に準備してください。

次に環境変数 GOPATH を確認しておいてください。

環境変数 GOPATH については、「Go の GOPATH 環境変数」をご覧ください。

Go の作業フォルダに移動

それでは Go でプログラムを書いていきましょう。

ターミナルを開き、 GOPATH に移動します。

go env GOPATH # GOPATH を確認
/Users/user1/go
cd /Users/user1/go

もし GOPATH に指定した場所に go フォルダがなかったら、作成してください。

続けて作業フォルダ src に移動します。

cd src

src フォルダも、ここに存在しない場合は作成してください。Go ツールは GOPATH 以下に src、 bin、 pkg フォルダが存在することを想定します。

$GOPATH/go 直下のディレクトリ構成は次のようになります。

tree -L 1 .
.
├── bin
├── pkg
└── src

3 directories, 0 files

さて、今回は src 以下の example.com/hello フォルダにソースコードを配置します。(もし、既存のフォルダがあれば重ならないように適当にフォルダ名を変えてください)

mkdir -p example.com/hello 
cd example.com/hello

これで作業場所まできました。ここにプログラムを作成しましょう。

Go モジュールの初期化

次のコマンドでこのモジュールを初期化します。

go mod init example.com/hello

このコマンドで go.mod ファイルが作成されます。

Go ソースコードの作成

次に、次の内容を main.go という名前のファイル名で作成します。

package main

import "fmt"

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

ちなみに、ここでファイル名はなんでも構いません。

Go プログラムのビルドと実行

次のコマンドで、プログラムをビルドします。

go build

書き間違いがあるなどして、エラーが発生する場合は修正してください。

正常に終了すると、Mac OS では同じフォルダに hello という実行可能ファイルが作成されるはずです。Windows では hello.exe が作成されます。

次のコマンドで hello を実行して、 Hello, world! と表示されれば成功です。

./hello
Hello, world!

Go プログラムを実行するコマンド

上では go build コマンドで実行可能ファイルを作成し、ビルドされたプログラムを実行しました。

しかし、その他のコマンドでも Go プログラムを実行できます。

go run コマンドによる Go プログラムの実行

go run ファイル名 として、実行可能ファイルを作成することなく、Go プログラムを実行できます。

go run main.go
Hello, world!

go install コマンドによる Go プログラムの作成

go install コマンドを実行すると、実行可能プログラムを作成して、$GOPATH/bin にビルドしたプログラムをインストールします。

この場合、 $GOPATH/bin が $PATH に含まれていれば、次のようにプログラムを実行できます。

go install
hello
Hello, world!

上記の go build の場合と比べると、 作成したプログラム hello を実行するために、現在のディレクトリを指定する ./ が不要になっています。

以上、Go で Hello, world! という文字を出力するだけの簡単なプログラムを作成しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Go 言語入門