WindowsにGo言語開発環境をインストールする

# 最終更新日

2020年6月30日

検証を行ったWindows 10のバージョンは下記です。
- Windows 10 Home 2004 19041.329

インストールするもののバージョンは下記です。
- Go SDK 1.14.4
- Visual Studio CodeのGo Extension（Visual Studio Code自体のインストールは別記事にて → [WindowsにVisual Studio Codeをインストールする](https://qiita.com/suke_masa/items/91fddf0728a290b72fc4)）
- Git（別記事にて → [WindowsにGit Bashをインストールする](https://qiita.com/suke_masa/items/404f06309bb32ca6c9c5)）

> この記事が古くなった場合、下記の手順は最新のインストール手順とは異なっている可能性があります。

# Go SDK
## インストール
(1) https://golang.org/dl/ にアクセスしてください。

(2) go1.14.4.windows-amd64.msi をダウンロードしてください。

![スクリーンショット 2020-06-30 11.21.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/7e6cf645-c71b-dafd-ff82-6e02261bdcda.png)

(3) ダウンロードしたMSIファイルをダブルクリックしてください。

(4) [Next]をクリックしてください。

<img width="495" alt="スクリーンショット 2020-06-30 11.23.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/2d1817a8-ae47-5390-e087-72733f2deb22.png">

(5) [I accept the terms in the License Agreement]にチェックを入れて、[Next]をクリックしてください。

<img width="500" alt="スクリーンショット 2020-06-30 11.24.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/7d36cd42-b04b-49d5-7dbe-4570d6dea655.png">

(6) [Next]をクリックしてください。

<img width="495" alt="スクリーンショット 2020-06-30 11.25.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/d9f9a5d8-a2fa-030c-44bd-43fa58e7e17a.png">

(7) [Install]をクリックしてください。

<img width="496" alt="スクリーンショット 2020-06-30 11.25.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/35cae820-57d2-7a23-5ddd-91432fdafacc.png">

(8) [はい]をクリックしてください。

<img width="456" alt="スクリーンショット 2020-06-30 11.25.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/49ccae7a-ea33-1b4e-e909-ffd15aca5b8b.png">

(9) [Finish]をクリックしてください。
<img width="498" alt="スクリーンショット 2020-06-30 11.28.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/688a73e1-41c5-1b09-6396-c5887c22e4a1.png">

## 確認
(1) コマンドプロンプトで `go version` コマンドを実行してください。インストールしたGoのバージョンが表示されれば成功です。

<img width="546" alt="スクリーンショット 2020-06-30 11.31.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/f757c315-8366-f28a-af8f-322d8e8195bb.png">

# Visual Studio CodeのGo Extension

> Visual Studio Code自体のインストールは別記事にて → [WindowsにVisual Studio Codeをインストールする](https://qiita.com/suke_masa/items/91fddf0728a290b72fc4)

## インストール
(1) Visual Studio Codeを起動してください。

(2) Extensionの検索画面を開いて「go」で検索→[Go Team at Google]のGoエクステンションをInstallしてください。

<img width="1028" alt="スクリーンショット 2020-06-30 11.56.17.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/b6ab7be7-84bd-1274-d833-648c0e9b29a8.png">

(3) [View]-[Command Palette]（またはCtrl+Shift+P）でコマンドパレットを開いてください。

(4) コマンドパレットに「go update」と入力すると、[Go: Install/Update Tools]という項目が出てくるので、これをクリックしてください。

![スクリーンショット 2020-10-12 15.26.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/ad5cc63f-077a-6820-1772-adb3e112c97e.png)

(5) [gocode]・[gopkgs]にチェックを入れたあと、[OK]をクリックしてください。インストールには少し時間がかかります。

![スクリーンショット 2020-10-12 15.29.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/bcb13eb8-5489-d69a-3829-16a8b07fa64e.png)

(6) コンソールに[All tools successfully installed. You are ready to Go :).]と表示されれば成功です。


## 動作確認
(1) 適当なフォルダにhello.goというファイルを作成して、Visual Studio Codeで下記のように編集してください。

```go
package main

import "fmt"

func main() {
	fmt.Println("Hello!");
}
```

(2) コマンドプロンプトで先ほどのフォルダに移動して、 `go run hello.go` コマンドを実行してください。「Hello!」と表示されれば成功です。

<img width="428" alt="スクリーンショット 2020-06-30 13.27.22.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/089a76e7-1d21-94e7-6022-c88b0f21a595.png">

# Git

## Gitのインストール
別記事にて → [WindowsにGit Bashをインストールする](https://qiita.com/suke_masa/items/404f06309bb32ca6c9c5)

## 動作確認
(1) 適当なフォルダ（先ほどのhello.goのフォルダとは別にしてください）に、go.modというファイルを作成して、Visual Studio Codeで下記のように編集してください。

```go
module sample

go 1.14
```

(2) コマンドプロンプトで先ほどのフォルダに移動して、 `go get github.com/labstack/echo/v4@v4.1.16` コマンドを実行してください。下記のように表示されれば成功です。

<img width="609" alt="スクリーンショット 2020-06-30 13.31.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/0c6772b3-ec50-6fd4-2cf5-740545b0d1f8.png">

(3) go.modを確認してください。 `require github.com/labstack/echo/v4 v4.1.16 // indirect` という記述が追加されています。

```go
module sample

go 1.14

require github.com/labstack/echo/v4 v4.1.16 // indirect
```

(4) go.modと同じフォルダにserver.goというファイルを作成して、Visual Studio Codeで下記のように編集してください。

```go
package main

import (
  "net/http"
  "github.com/labstack/echo/v4"
)

func main() {
  e := echo.New()

  e.GET("/", hello)

  e.Logger.Fatal(e.Start(":1323"))
}

func hello(c echo.Context) error {
  return c.String(http.StatusOK, "Hello!")
}
```

(5) コマンドプロンプトで先ほどのフォルダに移動して、 `go run server.go` コマンドを実行してください。

次のようなダイアログが表示された場合は[アクセスを許可する]をクリックしてください。

<img width="614" alt="スクリーンショット 2020-06-30 13.36.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/75e250b1-f10b-b5da-d6a2-554f56f1c58a.png">

次のように表示されれば成功です。

<img width="648" alt="スクリーンショット 2020-06-30 13.37.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/325cd6dc-c236-75b9-ef59-01dc56fb5c19.png">

(6) ブラウザで http://localhost:1323 にアクセスしてください。「Hello!」と表示されれば成功です。

<img width="263" alt="スクリーンショット 2020-06-30 13.38.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/8e7f8846-e218-6219-1d20-013a58461be2.png">

(7) 先ほどのコマンドプロンプトでCtrl + Cを押下してください。Echoが停止します。

<img width="603" alt="スクリーンショット 2020-06-30 13.39.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58650/d60a1f1d-7355-e29f-0c4e-305d60487d47.png">