17. Go-文档doc

本文档详细介绍了Go语言中godoc的使用方法,包括如何生成和查看代码文档,以及编写注释的规范。godoc是用于生成和查看Go程序文档的工具,支持显示包、类型、函数等的注释。文章还涵盖了如何编写符合godoc格式的注释,以及创建示例代码来增强文档的可读性。通过godoc-http=:6060命令,可以在本地开启网页服务查看文档。遵循良好的注释习惯,可以使代码更易于理解和维护。
摘要由CSDN通过智能技术生成

文档doc

  • 每一个 package 都应该有相关注释,在 package 语句之前的注释内容将被默认认为是这个包的文档, package 的注释应该提供一些相关信息并对整体功能做简要的介绍。
  • 在日常开发过程中,可以使用go doc和godoc命令生成代码的文档。

go doc 用法

  • go doc 命令打印Go语言程序实体上的文档。可以使用参数来指定程序实体的标识符。
  • go doc 用法 go doc [-u] [-c] [package|[package.]symbol[.methodOrField]]
    • -all 显示所有文档
    • -c 匹配程序实体时,大小写敏感
    • -cmd将命令(main包)视为常规程序包,如果要显示main包的doc,请指定这个标识
    • -src显示完整源代码
    • -u显示未导出的程序实体

使用示例

  • 输出指定 package ,指定类型,指定方法的注释
go doc sync.WaitGroup.Add
  • 输出指定 package ,指定类型的所有程序实体,包括未导出的
 go doc -u -all sync.WaitGroup
  • 输出指定 package 的所有程序实体(非所有详细注释)
 go doc -u sync

通过网页查看文档

  • 命令 godoc -http=:6060
  • godoc会监听6060端口,通过网页访问 http://127.0.0.1:6060

编写自己的文档

文档编写的约定

  • 注释符//后面要加空格, 例如: // xxx
  • package, const, type, func等关键字上面并且紧邻关键字的注释才会被展示。
// 此行注释被省略

// 此行注释被展示 
// 
// 此行注释被展示xxxxxxx
package banana
  • type, const, func以名称为注释的开头, packagePackage name为注释的开头。
// Package banana ...
package banana

// Xyz ...
const Xyz = 1

// Abc ...
type Abc struct {}

// Bcd ...
func Bcd() {}
  • 有效的关键字注释不应该超过3行
// Package banana ...
// ...
// ...
// 最好不要超过三行
package banana
  • Package的注释如果超过3行, 应该放在当前包目录下一个单独的文件中。
  • 在无效注释中以BUG(who)开头的注释, 将被识别为已知bug, 显示在bugs区域。
// BUG(who): 我是bug说明

// Package banana ...
package banana
  • 如果bug注释和关键字注释中间无换行, 那么混合的注释将被显示在bugsgodoc列表两个区域内。
// BUG(who): 我是bug注释
// Package banana ...也是pkg注释
package banana
  • 段落-多行注释:
/*
abc ... bcd

Basic(字体加粗变蓝需首字母大写, 中文加粗变蓝需要加上一个大写字母)

abc
...
... 属于Basic的段落
...
bcd
*/
package banana
  • 预格式化:
/*
abc ... bcd

Abc(不会加粗变蓝, 预格式化和段落不能同时存在)

    abc ... 预格式化需要缩进 ... bcd
*/
  • URL将被转化为HTML链接

Example

  • 文件必须放在当前包下
  • 文件名以example开头, _连接, test结尾, 如:example_xxx_test.go
  • 包名是当前包名+ _test, 如: strings_test
  • 函数名称的格式func Example[FuncName][_tag]()
  • 函数注释会展示在页面上
  • 函数结尾加上// Output:注释, 说明函数返回的值
// 文件必须放在 banana包目录下, 名字必须为example_xxx_test.go

// Package banana_test 为banana包的示例
package banana_test

// 此注释将会被展示在页面上
// 此函数将被展示在OverView区域
func Example() {
    fmt.Println("Hello OverView")
    
    // Output:
    // Hello OverView
}

// 此函数将被展示在OverView区域, 并展示noOutput标签
func Example_noOutput() {
    fmt.Println("Hello OverView")
    // (Output: )非必须, 存在时将会展示输出结果
}

// 此函数将被展示在Function区域
// Peel必须是banana包实现的方法
func ExamplePeel() {
    fmt.Println("Hello Banana")
    
    // Output:
    // Hello Banana
}

// 此函数将被展示在Function区域
// Peel必须是banana包实现的方法, 并展示big标签
func ExamplePeel_big() {
    fmt.Println("Hello Banana")
    
    // Output:
    // Hello Banana
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第01章 课程介绍 1-1 导学.mp4 1-2 课程介绍.mp4 第02章 实战-“云存储”系统原型 2-1 “云存储”系统原型之简单文件上传服务架构说明.mp4 2-2 编码实战:“云存储”系统之实现上传接口.mp4 2-3 编码实战:“云存储”系统之保存文件元信息.mp4 2-4 编码实战:“云存储‘系统之实现单个文件查询信息接口.mp4 2-5 编码实战:“云存储”系统之实现文件下载接口.mp4 2-6 编码实战:“云存储”系统之实现文件修改接口+小结.mp4 第03章 “云存储”系统之基于MySQL实现的文件数据库 3-1 MySQL基础知识.mp4 3-2 MySQL主从数据同步演示.mp4 3-3 文件表的设计及创建.mp4 3-4 编码实战:“云存储”系统之持久化元数据到文件表.mp4 3-5 编码实战:“云存储”系统之从文件表中获取元数据.mp4 3-6 Docker入门基础文档.mp4 3-6 本章小结.mp4 3-7 Ubuntu中通过Docker安装配置MySQL主从节点.mp4 第04章 “云存储”系统之基于用户系统实现的资源隔离及鉴权 4-1 帐号系统介绍与用户表设计.mp4 4-2 编码实战:“云存储”系统之实现用户注册接口.mp4 4-3 编码实战:“云存储”系统之实现用户登录接口.mp4 4-4 编码实战:“云存储”系统之实现用户信息查询接口.mp4 4-5 接口梳理小结.mp4 4-6 编码实战:“云存储”系统之快速实现访问鉴权接口+小结.mp4 4-7 关于静态资源访问404的问题【补漏.mp4 第05章 “云存储”系统之基于Hash计算实现秒传 5-1 Hash算法对比及秒传原理.mp4 5-2 用户文件表设计与创建.mp4 5-3 编码实战:“云存储”系统之升级改造上传接口.mp4 5-4 编码实战:“云存储”系统之基于用户查询文件Hash信息.mp4 5-5 编码实战:“云存储”系统之实现秒传功能接口+小结.mp4 第06章 “云存储”系统之基于Redis实现分块上传及断点续传 6-1_分块上传与断点续传原理.mp4 6-2_编码实战:Go实现Redis连接池(存储分块信息).mp4 6-3_编码实战:实现初始化分块上传接口.mp4 6-4_编码实战:实现分块上传接口.mp4 6-5_编码实战:实现分块合并接口.mp4 6-6_分块上传场景测试+小结.mp4 6-7_文件断点下载原理.mp4 第07章 “云存储”系统之基于Ceph实现私有云存储服务 7-1_Ceph是什么.mp4 7-2_Ceph集群介绍及兼容亚马逊S3接口详解.mp4 7-3_编码实战:Go访问管理Ceph集群.mp4 7-4_编码实战:Go实现Ceph的文件上传下载+小结.mp4 7-5_Ubuntu下通过Docker快速搭建Ceph测试集群(单机部署).mp4 7-6_Centos7下Docker部署Ceph集群(nautilus最新版,多机部署).mp4 第08章 “云存储”系统之基于阿里云OSS实现海量数据上云 8-1_阿里云对象存储OSS简介.mp4 8-2_阿里云对象存储OSS特点.mp4 8-3_阿里云对象存储OSS专业术语.mp4 8-4_阿里云对象存储OSS控制台管理.mp4 8-5_编码实战:OSS上传文件.mp4 8-6_编码实战:OSS下载文件.mp4 8-7_编码实战:OSS对象生命周期管理等常用功能.mp4 8-8_阿里云OSS本章小结.mp4 第09章 “云存储”系统之基于RabbitMQ实现异步存储 9-1_Ubuntu下通过Docker安装RabbitMQ.mp4 9-2_关于任务的同步与异步.mp4 9-3_RabbitMQ简介.mp4 9-4_RabbitMQ工作原理和转发模式.mp4 9-5_Docker安装RabbitMQ及UI管理.mp4 9-6_编码实战_实现异步转移的MQ生产者.mp4 9-7_编码实战_实现异步转移的MQ消费者.mp4 9-8_编码实战_异步转移文件测试+小结.mp4 第10章 “云存储”系统之架构微服务化 10-1_基于Docker部署服务注册发现中心consul集群.mp4 10-2_微服务基础概念与原理.mp4 10-3_云存储系统之微服务架构(1).mp4 10-4_云存储系统之微服务架构(2).mp4 10-5_Web框架Gin基础介绍.mp4 10-6_编码实战_基于Gin改造用户service(1).mp4 10-7_编码实战_基于Gin改造用户service(2.mp4 10-8_gRPC与Protobuf基础原理.mp4 10-9_RPC框架go-micro基础介绍.mp4 10-10_编码实战_改造账号系统service.mp4 10-11_编码实战_改造api网关service.mp4 10-12_编码实战_改造文件上传service.mp4 10-13_综合测试演示+小结.mp4 第11章 “云存储”系统之k8s&Docker;容器化实战 11-1_Ubuntu18下通过kubeadm单机安装k8s(v1.14.1)集群.mp4 11-2_Ubuntu18下安装k8s(v1.14.1)可视化管理工具.mp4 11-3_Docker与Docker-Compose基础概念.mp4 11-4_基于容器的微服务反向代理利器Traefik.mp4 11-5_基于Docker-compose与Traefik的容器化部署演示.mp4 11-6_Kubernetes基础原理.mp4 11-7_基于Kubernetes的容器化部署演示.mp4 第12章 “云存储”系统之持续集成部署 12-1_ubuntu下离线安装harbor1.6.mp4 12-2_持续构建之基础概念.mp4 12-3_基于gitlab+jenkins+harbor的自动化部署配置演示.mp4 第13章 课程总结 13-1_课程总结之章节重点及技能树温习.mp4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值