go get の実験

参考URL: http://golang.org/cmd/go/

Go1 になってからツールが追加されてたらしいのでちょっと実験してみた.
なんかライブラリを github から直接取得して使用できるようにできるらしい.
ためしに "Hello, World!" と表示するコマンドラインツールのリポジトリを作ってみた.

リポジトリURL: https://github.com/nise-nabe/helloworld

下記コマンドを実行すると環境変数で $GOPATH に入ってるディレクトリにインストールされて, $GOBIN に入ってるディレクトリに実行バイナリが入るらしい.

 $ go get github.com/nise-nabe/helloworld
 $ helloworld
Hello, World!

へぇ.

とりあえずプログラミングコンテストでいつも使ってる入出力用ライブラリでもやってみた.

リポジトリURL: https://github.com/nise-nabe/fastio

 $ go get github.com/nise-nabe/fastio

下記のようなコードを書いてみる.

main.go

package main

import (
        "github.com/nise-nabe/fastio"
        "os"
)

func main() {
        s := fastio.NewInOut(os.Stdin, os.Stdout)
        s.Println("Hello, World!")
        s.Flush()
}

実行してみる.

 $ go run main.go

ん?何も出力されない?ああ入力待ってるのか. Ctrl+D を入力して無事に "Hello, World!" が出力された.まあプロコンで使うなら入力いつもあるし入力が終了するまで処理が進まないのはそういう仕様ということにしておく.

ライブラリをアップデートする場合は

 $ go get -u github.com/nise-nabe/fastio

とかあるとアップデートされるらしい.
あと go1 とかいう ブランチかタグを切っておくとそのGoのバージョンで保守が可能になるらしい.

アンインストールどうすんのかと思ったけど

 $ go clean -i github.com/nise-nabe/helloworld

ぐらいしか見当たらなかった.$GOPATH/src/ 以下のやつは消えないんだろうか.まあいいや.

実験終わり.