9.6 为自定义包使用 godoc

godoc 工具(第 3.6 节)在显示自定义包中的注释也有很好的效果:注释必须以 // 开始并无空行放在声明(包,类型,函数)前。godoc 会为每个文件生成一系列的网页。

例如:

  • doc_examples 目录下我们有第 11.7 节中的用来排序的 go 文件,文件中有一些注释(文件需要未编译)
  • 命令行下进入目录下并输入命令:

    godoc -http=:6060 -goroot="."

. 是指当前目录,-goroot 参数可以是 /path/to/my/package1 这样的形式指出 package1 在你源码中的位置或接受用冒号形式分隔的路径,无根目录的路径为相对于当前目录的相对路径)

然后你会看到本地的 godoc 页面(详见第 3.6 节)从左到右一次显示出目录中的包:

  1. doc_example:
  2. doc_example | Packages | Commands | Specification

下面是链接到源码和所有对象时有序概述(所以是很好的浏览和查找源代码的方式),连同文件/注释:

sort

  1. func Float64sAreSorted
  2. type IntArray
  3. func IntsAreSortedfunc IsSortedfunc Sort
  4. func (IntArray) Len
  5. func SortFloat64s
  6. func (IntArray) Less
  7. func SortInts
  8. func (IntArray) Swap
  9. func SortStrings type Interface
  10. func StringsAreSorted type StringArray type Float64Array
  11. func (StringArray) Len
  12. func (Float64Array) Len
  13. func (StringArray) Less
  14. func (Float64Array) Less
  15. func (StringArray) Swap
  16. func (Float64Array) Swap
  17. // Other packages
  18. import "doc_example"

使用通用的接口排序:

  1. func Float64sAreSorted[Top]
  2. func Float64sAreSorted(a []float64) bool
  3. func IntsAreSorted[Top]
  4. func IntsAreSorted(a []int) bool
  5. func IsSorted[Top]
  6. func IsSorted(data Interface) bool
  7. Test if data is sorted
  8. func Sort[Top]
  9. func Sort(data Interface)
  10. General sort function
  11. func SortInts[Top]
  12. func SortInts(a []int)
  13. Convenience wrappers for common cases: type IntArray[Top]
  14. Convenience types for common cases: IntArray type IntArray []int

如果你在一个团队中工作,并且源代码树被存储在网络硬盘上,就可以使用 godoc 给所有团队成员连续文档的支持。通过设置 sync_minutes=n,你甚至可以让它每 n 分钟自动更新您的文档!

链接