GO
GOの仕様が素敵だなぁ。
D言語っぽさを感じたのは僕だけだろうか。
ついき
ちょっと前にはhttpのtestにこけてたけどrelease外してcloneしてみたらtest通った
hg clone https://go.googlecode.com/hg/ $GOROOT
追記の追記
Makeの仕組みが用意されてて嬉しかった。GOFILES並べるだけ。
include $(GOROOT)/src/Make.$(GOARCH) TARG=hello GOFILES=\ hello.go include $(GOROOT)/src/Make.cmd
httpつかってみた
package main import ( "fmt"; "http"; ) func main() { if res, _, err := http.Get("http://www.google.com/"); err == nil { for key, value := range res.Header { fmt.Printf("%s: %s\n", key, value); } } }
うごいた
goroutine使ってみた
package main import ( "fmt"; "time"; ) func generate(ch chan string) { for i := 0; ; i++ { ch <- fmt.Sprintf("hogehogeurl%d", i); } } func download(in, out chan string) { for { prime := <-in; fmt.Printf("download: %s\n", prime); out <- "ok"; time.Sleep(1 * 1e9); } } func main() { in := make(chan string); out := make(chan string); go generate(in); for i := 0; i < 3; i++ { go download(in, out); } for i := 0; i < 20; i++ { <-out; } }
これは楽しい