macにGoの開発環境を構築する

Goの勉強をはじめました。

導入から環境構築まで色々ググりながらやっていたのですが意外と情報が微妙に古かったり乱雑していたので、メモがてらまとめました。  
今回はGoのインストールからIntelliJのプラグイン設定まで
バージョン管理のgvmでの導入になりますが、そんなの使わないでサクッと入れたい人は`homebrew`でも入れられます。

###gvmのインストール
まずはバージョン管理のgvmを[https://github.com/moovweb/gvm:title](https://github.com/moovweb/gvm:title)に従いながらインストールします。

```
% bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
```
僕はzshを使っているので、bashの部分をzshに書き換えました。  
インストールが出来たら下記コマンドで反映

```
% source $HOME/.gvm/scripts/gvm
```
###Goのインストール
インストールできるバージョンを確認

```
% gvm listall

gvm gos (available)

   go1
   go1.0.1
   go1.0.2
   go1.0.3
・・・
   go1.6rc1
   go1.6rc2
   go1.7
   go1.7.1
   go1.7beta1
   go1.7beta2
・・・
```

最新の1.7.1をインストール
どうやらgvmで最新のgo1.5以上を入れるときはバイナリを突っ込む必要があるそうです。

```
% gvm install go1.7.1 -B
```
確認

```
% gvm list

gvm gos (installed)

   go1.7.1
```
このままでは`go`と叩いても反応しないので、インストールした1.7.1を指定してあげます。

```
% gvm use go1.7.1
Now using version go1.7.1
```
もう一度確認すると矢印がついて`go`が使えるようになります。

```
% gvm list

gvm gos (installed)

=> go1.7.1
```

```
% go version
go version go1.7.1 darwin/amd64
```

gvmで入れると`$GOPATH`と`$GOROOT`は自動で入るみたいです。
これはバージョンを切り替えても自動で切り替わってくれます。

```
% go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="$HOME/.gvm/pkgsets/go1.7.1/global"
GORACE=""
GOROOT="$HOME/.gvm/gos/go1.7.1"
GOTOOLDIR="$HOME/.gvm/gos/go1.7.1/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/y2/zz_q5ltx7v17184mmkfcbg8w0000gn/T/go-build277300899=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
```
今後作業ディレクトリは`$GOPATH`で行うことになります。
めったにバージョンは変えない、作業ディレクトリは`$HOME/dev`とか分かりやすい場所がいいと言う方は直で指定しちゃいましょう。

```
export GOPATH=$HOME/dev
export PATH=$GOPATH/bin:$PATH
```

###IntelliJの導入
[ここ](https://www.jetbrains.com/idea/download/)からIntelliJ IDEA14 Community Editionをダウンロードします。

通常どおりプラグインを入れるとSDKが指定できずにハマるので以下のページからjarファイルをインストールする。
https://github.com/go-lang-plugin-org/go-lang-idea-plugin/releases?after=%23460

![Releases_·_go-lang-plugin-org_go-lang-idea-plugin.png](https://qiita-image-store.s3.amazonaws.com/0/97344/fdee0028-9ccc-5117-212e-1fdfffbbca1b.png)

IntelliJ IDEA->Configure->Plugin->Install plugin from disk...を選択、ダウンロードしたGo.201.zipを選択してインストール。
すると
Restartと促されるのでそのまま従い再起動。
![Welcome_to_IntelliJ_IDEA.png](https://qiita-image-store.s3.amazonaws.com/0/97344/51e2322a-c450-d665-b99c-263a73ba22a0.png)
Eventsに従いupdateをし、再度再起動。

Create New Project->GOを選択
まだSDKは現れないので、Configureを開きパスに＄GOROOTのパスを指定すると無事SDKが指定できます。
![New_Project.png](https://qiita-image-store.s3.amazonaws.com/0/97344/02452ddc-ce5f-486f-6a25-cbba643647f7.png)

あとはプロジェクト名を指定し、プロジェクトパスを$GOPATHに設定

プロジェクト上にmain.goファイルを作成し、お決まりの`hello world`ならぬ`hello go`を

```go:main.go

package main

import "fmt"

func main() {
	fmt.Println("hello go")
}
```

メニューバーのRunからRunを実行すると無事にhello goが実行されます。
コマンドだと

```
% go run main.go
```


###参考サイト

http://dev.classmethod.jp/server-side/language/golang-1/
http://www.songmu.jp/riji/entry/prepare-golang-development-environment-on-mac.html
http://shepherdmaster.hateblo.jp/entry/2015/02/02/192327
http://qiita.com/yamadagenki/items/5032cf853f6b136b533f
http://qiita.com/adarah_g/items/85d12583386dc19f6c4e