Go言語勉強会(1)
今日初めてGoを触りました.
貸してもらった本がはてなの@songmuさんの本でニヤニヤした.Goは初なので環境構築とチュートリアルが今日の目標です.@mattnさんもいてハッピー.そのあと購入しました.
環境構築
$GOROOT
Goのインストールパス.$ go env GOROOT
で取得.
私のは/usr/local/Cellar/go/1.9/libexec
$GOPATH
Goのワークスペース$HOME/devにした.
$HOME/dev/binには色々go getしてきたものたちが入っているb
go get で gore 入れた.
motemenさんはてなのインターンのJSONのschemaとサンプルコードあげてた人のパッケージ
go getはソースコードリポジトリをそのまま参照する.git cloneの感覚.
$ gore -autoimport
REPL.
終了はctrl+D
ghq
$GOPATH管理.インストールしたのでghq listでディレクトリ上のリポジトリ一覧取得できる.ghq getでリポジトリ取得できる.
ghq get と go getの違いはなんだ?
ghqはツール,go getはgoのリポジトリを管理するもの.ghqはgoに限ったツールではない.
peco
リポジトリ間の移動を簡単に行う
開発支援用のツール
$go get golang.org/x/tools/cmd/...
したのでまとめてインストールできた.
gofmt
インデントはタブ.まだコードを書いていないので後で試す.
gofmt -w main.go
goimports
gofmtの機能+使ってないけど宣言したパッケージを自動で削除
ただし重いので使い分け必要.早いのはdragon-imports
lint
コードの解析をして指摘してくれる.バグが発生しそうなところ指摘するのがgo vet,
Goらしくない書き方を指摘するのがgolint.なにそれ天才..
go vetの警告は必ず直したほうがいい.そりゃそうね.合間合間にgo vetとgolintは実行したほうが良い.golintの厳しさ設定を$ golint -min_confidence=0.5 ./...で変えられる.デフォルトは0.8で小さくするほど厳しい.
godoc
$godoc hogeでhogeパッケージのドキュメントが観れる.fmtとか.
$godoc $(ghq list |peco)|less
慣れてきたら使ってもいいかもしれないもの
- gorename
- guru
- gocode
- godef
- gotags
一応全部入れておいたよ
環境構築終了.
チュートリアル
を進めていくぞ.
やや頑張ってドキュメントよも(気が向いたら)
Documentation - The Go Programming Language
今日はhello,worldまでできた.hello.rbとしたけどhello/main.rbとしても綺麗だった.まあこれくらいならhello.rbでいいんだけど.訂正した.
なんか間違っていることがあればコメントお願いします.