読者です 読者をやめる 読者になる 読者になる

Go言語触ってみた

今をときめくGo言語を触ってみた。ときめくとか言いながらGo言語が一番話題になってたのは登場したばかりの頃だったと思うけど、今はプロダクトレベルでの浸透が進んでる気がする。気がするだけで実情は知らない。

ただ、サーバーサイドにGoを使ってるGunosyみたいな企業がいたり、go製のCLIツール(例えばpecoとか)がもりもり登場してきたりしてて、少なくとも自分の感覚としては流行ってきてるなーとか思ってる。

で、何番煎じか分からないくらいだけれども、とりあえずGo言語を触ってみた。

Go言語のインストール

Homebrewがあれば一発。

brew install go

現時点の最新versionは1.3。ちなみに、自分はghq使う目的とかで既にgoはインストールしてた。

Pathの設定とかgo.toolsのインストールとか

Qiita: Go 1.2.1 の環境構築 Homebrew + Vim 編 (2014.03) を参考に、PATHを設定したりgo.toolsをインストールしたりする。この記事ではgoのversion 1.2をインストールしてて、今回はversion 1.3だったけど特に問題は無かった。

PATHは、.zshrcに以下の様に設定した

export GOPATH=$HOME/.go
export GOROOT=/usr/local/opt/go/libexec
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

GOPATHはgo getで(ghqを入れた場合にはghq getでも)インストールしたツールやパッケージが置かれるディレクトリのルートになっていて、これを設定しないとツール等のインストールが出来ない。GOROOTは、bin以下にgoの本体がある。

goでは、必要なパッケージやツールgo getコマンドでインストール出来る。これがかなり便利だったりする。

vim使ってるなら、vimの設定もやっておくと良いと思う。

" :Fmt などで gofmt の代わりに goimports を使う
let g:gofmt_command = 'goimports'

" Go に付属の plugin と gocode を有効にする
set rtp^=${GOROOT}/misc/vim
set rtp^=${GOPATH}/src/github.com/nsf/gocode/vim

" 保存時に :Fmt する
au BufWritePre *.go Fmt
au BufNewFile,BufRead *.go set sw=4 noexpandtab ts=4
au FileType go compiler go

あと、zshでのgoコマンドの補完を効かせる為に、zshrcに以下の一行を追加した。

source /usr/local/share/zsh/site-functions/go

/usr/local/share/zsh/site-functions/はfpathに加えてるから十分かと思ってたけど、何故か明示的に読み込まなければちゃんと補完が働かなかった。

Go入門

Qiita: Go言語の初心者が見ると幸せになれる場所というのがあり、参考にすると良さそうだった。

自分は、「A Tour of Go」をとりあえず通してやってみた。Go流に慣れ親しむには良かったと思う。

で、いろいろ思うとこあったんでちょろっとまとめたいと思うんだけど、今は眠すぎてつらいのでまた後にさせて頂きたく。。。