Go 1.12 のローカル環境構築、Modulesを使えるようになるまで(MacOS版)
概要
- mac OS 10.14
- Homebrewインストール済み
Homebrewでgoをインストール
brew update brew install go go version (go version go1.12.4 darwin/amd64)
goenvもいれる
brew install goenv vi ~/.bash_profile
bash_profileに以下を追加
export PATH="$HOME/.goenv/bin:$PATH" eval "$(goenv init -)"
詳しい使い方はここを参考にしました。
バージョンをbrewで入れたものに戻したい場合は、
goenv global system
と入れる。
GOPATH設定
bash_profileに以下を追加
export GOPATH=$HOME/go
この場合は、ホームフォルダ直下にgoというフォルダを作って、その下がGOPATHになる。
必要に応じて好きな場所に変えても問題ないです。
modulesを使う
go1.12だとデフォルトでmodulesが使えるようになっている。
適当な場所でフォルダを作り、その中で、
go init
すると、go.modフォルダが作られる。 あとはimport文に適当なライブラリを書いて、
go build
すると自動で持ってきてくれる。go getしてもOK。
具体例
たとえば、
上記のライブラリを使いたいとき、以下のようなソースコードをmain.goに書くとする。
package main import ( "fmt" "github.com/julienschmidt/httprouter" // これが使いたいgo getも特にしていないライブラリ "net/http" "log" ) func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { fmt.Fprint(w, "Welcome!\n") } func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { fmt.Fprintf(w, "hello, %s!\n", ps.ByName("name")) } func main() { router := httprouter.New() router.GET("/", Index) router.GET("/hello/:name", Hello) log.Fatal(http.ListenAndServe(":8080", router)) }
そして、以下を実行すると自動で上記ライブラリを持ってきてくれる。
go build main.go
※go.modファイルには上記ライブラリが追加されている。