· godoc golang Go言語

#golang Examplesの仕組みについて

  • このエントリーをはてなブックマークに追加

岡山で開催中のGolang Cafeの参加者のブログ記事を見て、Examplesの仕組みが気になって調べた時にGoogle+に投稿した内容です。

Examplesの説明はココですね。なるほど。 
http://golang.org/pkg/testing/#hdr-Examples 

"プログラムの例示と、出力結果を示す時に、プログラムの結果が本当に正しいかを確認できるようにしている"というのは、間違いないと思われます。 

というのは、たとえば、 
http://golang.org/pkg/encoding/json/#example_Marshal 
ドキュメントにあるこの部分と、 
http://golang.org/src/pkg/encoding/json/example_test.go#L16 
testプログラムにあるこの部分がまったく一緒でしたので。 

これだけの理由だと弱いというのと、どのような仕組みでなってるか気になったので、 golang.org を"Examples"で検索してみたところ、ドキュメントのテンプレートを見つけたのですが(1.2では移動してます)、 
http://golang.org/lib/godoc/package.html#{{$name_html}}
この{{example_html $ .Name}}の部分でxxx_test.goのExampleXxx部分を切り出してdocに出力しているようです。 

example_htmlはFuncMapでテンプレート用に関数を作っていました。 
https://code.google.com/p/go/source/browse/godoc/godoc.go?repo=tools#84 

1.2で移動したpackage.htmlがどこに行ったかですが、 
https://code.google.com/p/go/source/browse/godoc/static/package.html?repo=tools 
こちらにありました。 

ちなみに調べてて気付いたのですが、"go doc"コマンドが"godoc"に1.2から変わるみたいですね。その変更でpackage.htmlは移動したみたいです。 

以上、そんな感じだと思います。 
いや〜、勉強になりました。

とコメントしたら、次のようにコメント頂きました。

godoc用のサンプルコードに使われるってことなんですね。

たぶん、これがしっくりくる説明になるんじゃないかと思います。

#ほとんどG+投稿内容のコピペです(^^ゞ

  • このエントリーをはてなブックマークに追加
  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket