みんな大好き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/ がマニュアルになります
自分が追加したパッケージもパッケージ一覧に表示されるし便利ですよ
以上!