はじめに
船井総研デジタルのoswです。業務でGo言語を使うことになったため、勉強がてら備忘録で記録します。参考になる方がいらっしゃれば幸いです。
対象読者
- Go言語をこれから勉強する方
- VSCodeを使おうと考えている
今回使う環境
今回は下記を土台にGoの開発環境を構築します。
- Windows 11 Home / 22H2
- VSCode / 1.72.2
環境構築
環境構築はGitのインストールを除き、マイクロソフトの下記記事を参考に次の流れで行います。
- Gitのインストール
- Goのインストール
- VSCodeのインストール
- 拡張機能のインストール
- Goツールを更新する
Gitのインストール
内部でGitを使うことがあるようで、必ずGitが必要という訳ではないようですがインストールすることが推奨されているようです。
Goのインストール
下記、Go公式ページから「Download Go for Windows」を選択し、ダウンロード、インストールします。
次に Windowsキー + R -> cmd[Enter] でコマンドプロンプトを起動し、次のコマンドでGoがインストールされたか確認します。レスポンスでバージョンが返れば成功です。
>go version
go version go1.19.2 windows/amd64
VSCodeのインストール
手元にまだインストールされていない方は次の記事を参考にインストールしてください。
拡張機能のインストール
VSCodeを日本語化する
インストールしたばかりのVSCodeはUIが日本語ではないため、日本語化する場合は下記画像のように「japanese」で検索し、言語パックをインストールし、VSCodeを再起動します。
Goの拡張機能をインストール
「Go」で拡張機能を検索し、画像と同じものをインストールします。
Goツールを更新する
Goの拡張機能をインストール後、Ctrl + Shift + P でコマンドパレットを開き、Go: Install/Update tools
を検索、実行します。
これで環境構築は完了です。
Hello World
構築した環境でお馴染みのHello Worldを実行してみます。
今後、学習した内容ごとにディレクトリをぶら下げていきたいので、下記のようにgoディレクトリを作成し、その中に各ディレクトリをぶら下げるようにしました。VSCodeで「hello」ディレクトリを開きます。
go
└─hello
└─hello.go
VSCode上でターミナル(コマンドプロンプト)を起動、カレントディレクトリがhelloであることを確認し、下記を実行します。
>go mod init hello
# go.modが作成される。VSCodeでデバッガーを使うためにもこの作業が必要な様子
>ls
go.mod
hello.goを次のように作成します。
package main
import "fmt"
func main() {
name := "World"
fmt.Println("Hello", name)
}
VSCode上で[F5]キー押下でデバッグが走り、下記のように「Hello World」と結果が表示されます。
Starting: C:\Users\<ユーザ名>\go\bin\dlv.exe dap --check-go-version=false --listen=127.0.0.1:58443 from r:\work\go\hello
DAP server listening at: 127.0.0.1:58443
Type 'dlv help' for list of commands.
Hello World
Process 18416 has exited with status 0
Detaching
dlv dap (17676) exited with code: 0
ここでgo.modが作成されていないとエラーになります。
Starting: C:\Users\<ユーザ名>\go\bin\dlv.exe dap --check-go-version=false --listen=127.0.0.1:58752 from r:\work\go\hello
DAP server listening at: 127.0.0.1:58752
Build Error: go build -o r:\work\go\hello\__debug_bin.exe -gcflags all=-N -l .
go: go.mod file not found in current directory or any parent directory; see 'go help modules' (exit status 1)
コマンドでコンパイル、実行するにはカレントディレクトリがhelloであることを確認し、下記のようにします。
# runコマンドを使う場合
>go run hello.go
Hello World
# buildコマンドを使う場合
>go build hello.go
>hello.exe
Hello World
run / build と2つコマンドを使いましたが、どうやら実行ファイルが作成されるかどうかが異なるようです。
コマンド | 実行ファイルの作成 |
---|---|
run | しない |
build | する |
おわりに
複雑な手順もなく、これでGoの開発環境が整いました。これから勉強を開始します。