【Go】Go言語の環境構築とGoモジュールの基本(go mod init)

Go

こんにちは、かつコーチです。
Goを始めようと思っても、「インストールはどうやるの?」「go modって何?」とつまずく方は多いです。
この記事では、インストール手順からgo mod initの意味まで順番に解説します。
読み終える頃には、自分のPCでGoのプロジェクトを作れるようになります。

環境構築の前に知っておきたいこと

GOPATHとGoモジュールの違い

昔のGoでは、GOPATHという特定のディレクトリの中にしかコードを置けませんでした。
GOPATHとは、Goのソースコードを置く場所を決めた、環境変数で指定するディレクトリのことです。
すべてのプロジェクトを1つのフォルダ配下に集める必要があり、正直かなり不便でした。
2018年にGo 1.11でGoモジュールという仕組みが導入され、この制約はなくなりました。
Goモジュールとは、プロジェクトごとに依存関係を管理する仕組みのことです。
今はPC内のどこにディレクトリを作っても、Goのプロジェクトとして扱えます。
これから始める方は、Goモジュールの使い方だけ覚えれば十分です。

Goのインストール手順

手順1: 公式サイトからダウンロード

Goの公式サイト(go.dev)にアクセスし、自分のOSに合ったインストーラーをダウンロードします。
Macを使っている方は、Homebrewでのインストールも便利です。

brew install go

Windowsの方は公式サイトのインストーラー(.msi)を使うのが簡単です。

手順2: インストール確認

インストールが終わったら、ターミナルで以下を実行して確認します。

go version

go version go1.23.0 darwin/arm64のようにバージョンが表示されれば成功です。
何も表示されない、または「command not found」と出る場合は、パスの設定を見直してください。

Goモジュールの基本(go mod init)

go mod initとは

新しいプロジェクトを作るときは、まずgo mod initを実行します。

mkdir myapp
cd myapp
go mod init myapp

go mod initとは、そのディレクトリをGoのモジュール(プロジェクト単位)として初期化するコマンドです。
これを実行すると、go.modというファイルが自動生成されます。

go.modファイルの役割

go.modには、モジュール名やGoのバージョン、使用している外部パッケージの情報が記録されます。

module myapp

go 1.23

このファイルがあることで、Goは「ここがプロジェクトの起点だ」と認識できます。
外部パッケージはgo getで追加すると、自動でgo.modに追記されます。

つまずきやすい設定・注意点

go mod initのあとに指定する名前(上の例ではmyapp)は、基本的に自由に決められます。
ただしGitHubで公開する予定がある場合は、github.com/ユーザー名/リポジトリ名の形式にしておくと後々楽です。
あとから変更すると、importパスをすべて書き換える手間が発生するためです。

よくあるつまずきポイント・エラー対処

go.modがないままgo runしてしまう

筆者が初めてGoを触ったとき、go mod initを忘れたままgo run main.goを実行してしまったことがあります。

❌Before

go: cannot find main module, but found .go file(s) in current directory
to create a module there, run:
        go mod init

このエラーメッセージを見たときは「モジュールって何のこと?」と一瞬固まりました。
原因は単純で、go.modが存在しないディレクトリではGoがプロジェクトとして認識できないためです。

✅After

go mod init myapp
go run main.go

先にgo mod initでモジュールを作っておけば、このエラーは出ません。
今では「新しいディレクトリを作ったら、まずgo mod init」を体に染み込ませています。

応用・一歩先の使い方

環境が整ったら、コードの見た目を整えるgofmtにも触れておきましょう。
gofmtとは、全員が同じフォーマットで書けるようにする、Go公式のコード整形ツールです。
社内の文書テンプレートのように、誰が書いてもインデントや改行のルールが揃います。

gofmt -w main.go

このコマンドを実行するだけで、コードのスタイルが自動的に整います。

まとめ

この記事のポイント

  • 今のGoはGOPATHではなく、Goモジュールでプロジェクトを管理する
  • インストール後はgo versionで正常にインストールできたか確認する
  • go mod initでモジュールを初期化するとgo.modが生成される
  • go.modがないとgo runできないので、最初に必ず実行する
  • gofmtを使うとコードのフォーマットが自動で揃う

次に読むべき記事

環境が整ったら、いよいよ実際にコードを動かしてみましょう。
「go run/go buildの違いとHello World」で、実行方法の違いを解説しています。

タイトルとURLをコピーしました