17Nov/09Off
「早速 Go言語を試してみる!」をgoで書き直してみた
まぁ、あれだけどこんな感じ。
amachangのところで書かれていたTwitterのpublic timeline拾ってくるサンプル。
早速 Go 言語を試してみる!
jsonもUnmarshalでxmlと同じように拾ってこれる。
とか、かなりgoっぽく書き直してみた。
Unmarshalは必要な要素だけでOKっぽいので使いやすい。
Linux/386, osx10.6.2/386で動作確認済み。
package main import ( "json"; "http"; "io"; ) type User struct { Screen_name string; } type Tweet struct { User User; Text string; } type Tweets struct { Tweet []Tweet; } func main() { if r, _, err := http.Get("http://twitter.com/statuses/public_timeline.json"); err == nil { if b, err := io.ReadAll(r.Body); err == nil { var tweets Tweets; json.Unmarshal( "{ "tweet": " + string(b) + "}", &tweets ); for _, tweet := range tweets.Tweet { print( tweet.User.Screen_name + " : " + tweet.Text + " " ); } } } }
ほとんどの環境だと、export GOARCH="386"で、
8g/8l使うのが正解だと思うのだが…。
http.Getはポート指定していないと http で services を lookupするようなのでその辺かも。