みんな大好きGo言語の Windows 用バイナリRC版
Go言語は最近 Go 1 というメジャーリリースに向かって開発が進んでいるようなのですが、RC版の Windows 用バイナリがリリースされていたので試してきましたよ。皆もレッツGo!
1. ダウンロードする
http://code.google.com/p/go/downloads/list
ここにあります。
2. インストールする
特にインストール先変えずにガンガン次へで進めました。
C:\Go にインストールされました。
3. 使ってみる
じゃあメモ帳でも開いて、ソースファイルのひとつでもこさえてみましょう。
4. コンパイルする
5. 実行してみる
6. 外部のライブラリも入れてみる
http://code.google.com/p/snappy-go/
少し前に話題になった高速な圧縮展開アルゴリズムが売りの snappy を使ってみましょう。
snappy は Mercurial を使ったリポジトリ上で管理されているので Windows 版の Mercurial が必要です。インストール済みって前提で進めますねー。
7. snappy も使ってみる
test.go をこんな感じで修正してみました。
8. 困った時は
・go だけを打つとどんなコマンドがあるのか大体出ます
・godoc -http=:6060 と打つと http://localhost:6060/ がマニュアルになります
自分が追加したパッケージもパッケージ一覧に表示されるし便利ですよ
以上!
1. ダウンロードする
http://code.google.com/p/go/downloads/list
ここにあります。
2. インストールする
特にインストール先変えずにガンガン次へで進めました。
C:\Go にインストールされました。
3. 使ってみる
じゃあメモ帳でも開いて、ソースファイルのひとつでもこさえてみましょう。
mkdir test cd test notepad test.goソースの中身はこんな感じのを打ってみたらどうでしょう?
package main import ( "log" "fmt" "io/ioutil" "net/http" ) func main(){ resp, err := http.Get("http://example.org/") if err != nil { log.Fatalln(err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatalln(err) } fmt.Println(string(body)) }
4. コンパイルする
go buildコマンドプロンプトでこれを打つだけで「test.exe」ができました。
5. 実行してみる
testHTML が出力されたら成功ですねー。
6. 外部のライブラリも入れてみる
http://code.google.com/p/snappy-go/
少し前に話題になった高速な圧縮展開アルゴリズムが売りの snappy を使ってみましょう。
snappy は Mercurial を使ったリポジトリ上で管理されているので Windows 版の Mercurial が必要です。インストール済みって前提で進めますねー。
go get code.google.com/p/snappy-go/snappyこれだけでインストール完了してるはず。
go list allこれでずらっと出てくる中に code.google.com/p/snappy-go/snappy が出てくるはずですねー。
7. snappy も使ってみる
test.go をこんな感じで修正してみました。
package main import ( "code.google.com/p/snappy-go/snappy" "fmt" "io/ioutil" "log" "net/http" ) func main(){ resp, err := http.Get("http://example.org/") if err != nil { log.Fatalln(err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatalln(err) } fmt.Println("original size:", len(body)) encoded, err := snappy.Encode(nil, body) if err != nil { log.Fatalln(err) } fmt.Println("encoded size:", len(encoded)) decoded, err := snappy.Decode(nil, encoded) if err != nil { log.Fatalln(err) } fmt.Println("decoded size:", len(decoded)) }受信したバイト数と、圧縮後のバイト数と、展開後のバイト数を表示するだけです。
go build test
original size: 2966 encoded size: 1652 decoded size: 2966こんな感じになりました。面白い!
8. 困った時は
・go だけを打つとどんなコマンドがあるのか大体出ます
・godoc -http=:6060 と打つと http://localhost:6060/ がマニュアルになります
自分が追加したパッケージもパッケージ一覧に表示されるし便利ですよ
以上!