17Nov/090
「早速 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するようなのでその辺かも。