Go開発環境構築(Windows)

# 環境構築
Goの開発環境を構築します。（Windows版）
今回使用する環境は以下の通りです。

## 0. 今回使用する環境
### 1. OS

　エディション：	Windows 10 Pro
　バージョン：	21H2
　

### 2. IDE(総合開発環境)
　[Visual Studio Code](https://azure.microsoft.com/ja-jp/products/visual-studio-code/) 
　バージョン：1.71.0
  ※今回、Visual Studio Codeは既にインストール済みのものを使用します。


## 1. SDKのインストール
　Go SDK ：　[go1.19.1.windows-amd64.msi](https://go.dev/dl/)
Goの公式ページ[https://go.dev/dl/](https://go.dev/dl/)からWindws版インストーラをダウンロードします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/6551007c-7b5b-78bf-7919-a93163a89863.png)

ダウンロードしたインストーラをクリックしてインストールを開始します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/8b835be5-fa0a-089f-575f-ef0330946186.png)

同意して次へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/6027ad0c-cc15-0059-d326-d1e005003fea.png)

Windows版の場合、基本的にはCドライブのProgram Files配下にGoフォルダが作成されてインストールされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/ec21c628-633b-4515-7850-6275d28d3a6e.png)

今回はCドライブの容量がカツカツなので、DドライブにGoフォルダを作成してそちらにインストールします。（特に変更する必要性がない場合はそのままでOKです)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/4de5c283-abb1-f9dc-3aa7-0afa808c8cd7.png)

[Install]ボタンを押すとインストールが始まります。おおよそ数分～30分くらいかかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/ec33246d-9a79-fe17-e45c-15a548f8113f.png)

ここまで表示されたらインストールウィザードは終了です。[Finish]ボタンを押してウィザードを閉じでください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/94a1d189-1a84-75f1-717a-5c590059de07.png)

## 2. SDKインストールの確認
先ほどのインストールがちゃんとできているか確認します。Windowsの検索バーに
```
CMD
```
を入力して[Enter]キーを押してコマンドプロンプトを起動、

```go
go version
```

を入力して、インストールしたバージョンのGoの情報が表示されていればインストールは完了です。
今回の場合、1.19.1がインストールされています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/57647e83-5202-4c8f-a58c-0786eeb88031.png)

## 3. Visual Studioの拡張
今回、IDEとして利用するVisual Studio CodeにGoエクステンションを追加します。 Visual Studio Codeを起動して画面左側メニューもしくはツールバーの 表示>拡張機能 から拡張機能を表示します。 
検索窓に「Go」を入力してエクステンションを検索します。
Goa Team at Google 提供の拡張機能をインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/9ba02b78-340c-02d0-0458-0bb9012dce00.png)

これで基本的な開発環境の準備は完了...のはず。

## 4. テストコードの作成
開発環境作成後、テストコードを作成します。
Visual Studio Codeから任意のフォルダに hello.go ファイルを作成して、以下のコードを入力して保存します。
```golang
package main

import "fmt"

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

## 5. テストコードの実行
コマンドプロンプトまたはVisual Studio Codeの[ターミナル]から go runコマンドで実行します。
実行のたびにコンパイルしているためか、実行速度は遅いです。
```golang
go run hello.go
```
コマンドプロンプトからの実行例。
作成したテストコードのあるディレクトリまで移動して実行しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/ca94e80b-52fc-adad-2f19-db65fbf064d3.png)

Visual Studio Codeのターミナルからの実行例。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/f390b685-868c-a0bf-65e1-bcc20be8dcbe.png)

## 6.実行形式へのコンパイル
実行形式へのコンパイルは go buildコマンドを使用します。
コンパイル後の実行速度はgo runコマンドでの実行時より格段に速くなります。
```golang
go build hello.go
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/8cafd756-1a33-e8b8-3694-81dfdf823522.png)
windowsの場合exe形式、Linux系OSの場合./[ファイル名]で実行可能な形式のファイルが生成されます。
※ただし、このままの状態だとコンパイルしたOSのみに対応した実行形式になるので、クロスプラットフォームにするにはコンパイル時に設定が必要です。
コンパイル後は　ファイル名 もしくは ファイル名.exe で実行できます。
※Visual Studio Code のターミナルの場合は　.\ファイル名 もしくは .\ファイル名.exe
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/670069/0508f6bf-e26f-cec3-ac2a-54ed7676b644.png)

【関連記事】
* [【Go言語】Windows10環境でLinux用の実行ファイルを作成する](https://qiita.com/mochico_chicken/items/7344973da7620c176956)