• 9.6 为自定义包使用 godoc

    9.6 为自定义包使用 godoc

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

    例如:

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

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

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

    • 在浏览器打开地址:http://localhost:6060

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

    doc_example:

    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 分钟自动更新您的文档!