go语言自带的文档生成十分好用

下面我们来看看具体怎么操作

我们先来看一个没有任何注释的一个先进先出的队列例子

package queuetype Queue []interface{}func (p *Queue) Push(v interface{}){*p = append(*p,v.(int))
}
func (p *Queue) Pop() interface{}{head := (*p)[0]*p = (*p)[1:]return head
}
func (p *Queue) IsEmpty() bool{return len(*p) == 0
}

接下来我们打开powershell(cmd或者linux,mac都可以)输入go doc

这样我们就打开了系统自带的文档 一般情况下我们都是使用ide查看文档 这个只是作为了解使用

不过命令行有一个godoc -http :6060非常好用  我们可以使用 godoc -help打开godoc帮助文件 里面有详细介绍

就这样 我们打开了golang的本地文档

接着我们去寻找开头的queue包文档

这里我们结合开头代码可以看到 没有显示任何文档

下面我们给它添加一下注释

package queue
// An FIFO queue.
type Queue []interface{}
// Pushes the element into the queue.
func (p *Queue) Push(v interface{}){*p = append(*p,v.(int))
}
//Pops element from head.
func (p *Queue) Pop() interface{}{head := (*p)[0]*p = (*p)[1:]return head
}
// Returns if the queue is empty or not.
func (p *Queue) IsEmpty() bool{return len(*p) == 0
}

添加完后 我们先用命令行查看一下

注释出来了 接着我们重启一下6060端口 刷新网页

文档成功显示

在go语言中文档的书写是很舒服的没有特别的框框架架

go语言在写注释时//   .......文字描述之前多加几个空格 go语言的本地文档会给我们自动加框 如下图

除此之外 go语言还提供了一种特殊的文档编写方法

我们按照测试方法在同一包内创建queue_test.go文件

是不是发现这明明就是测试文件创建方法

没错 _test.go文件既可以当做测试文件 也可以当做文档生成文件 做成文档需要输入关键字Exam

下面是文档生成的例子

package queueimport "fmt"func ExampleQueue_Pop() {q := Queue{1}q.Push(2)q.Push(3)fmt.Println(q.Pop())fmt.Println(q.Pop())fmt.Println(q.IsEmpty())fmt.Println(q.Pop())fmt.Println(q.IsEmpty())//  Output:// 这里我们先随便写 执行成功后会打印正确内容
}

执行后结果为 注意go语言自动检查执行结果是否正确

package queueimport "fmt"func ExampleQueue_Pop() {q := Queue{1}q.Push(2)q.Push(3)fmt.Println(q.Pop())fmt.Println(q.Pop())fmt.Println(q.IsEmpty())fmt.Println(q.Pop())fmt.Println(q.IsEmpty())//  Output://    1// 2// false// 3// true
}

我们重启godoc -http :6060

go语言的文档生成是不是很简单

总结一下go语言的文档特点

.用注释写文档

.在测试中加入Example

.使用go doc/godoc 来查看/生成文档

最后总结一下go语言整个测试

.表格驱动测试             go语言通过结构体来实现测试的主体 这是语法本身支持的

.代码覆盖                    有覆盖率及覆盖率调试通过ide进行查看明确又清晰

.性能优化工具             通过pprof打开图形可视化性能图 依块的大小来调节性能

.http测试                     通过这个简单的例子从头到尾测试一遍包括代码执行结果 覆盖率等

.文档及示例代码         go语言的示例代码输出结果也能进行失败

关于golang如何生成文档相关推荐

  1. Objective-C自动生成文档工具:appledoc

    作者 iOS_小松哥 关注 2016.12.13 15:47* 字数 919 阅读 727评论 10喜欢 35 由于最近琐事比较多,所以好久没有写文章了.今天我们聊一聊Objective-C自动生成文 ...

  2. Objective-C 自动生成文档工具:appledoc

    来源:iOS_小松哥 www.jianshu.com/p/fd4d8d6b6177 如有好文章投稿,请点击 → 这里了解详情 由于最近琐事比较多,所以好久没有写文章了.今天我们聊一聊Objective ...

  3. java前端目录_[Java教程]前端那点事儿——Tocify自动生成文档目录

    [Java教程]前端那点事儿--Tocify自动生成文档目录 0 2016-06-29 22:00:07 今天偶然间看到文档服务器有一个动态目录功能,点击目录能跳转到指定的位置:窗口滑动也能自动更新目 ...

  4. 快速优雅的为React组件生成文档

    在开发React组件时我们通常需要处理2个问题: 实例化这个组件以便调试 为这个组件编写使用文档以便更好的让别人知道怎么使用这个组件 最原始的方法莫过于开发时建一个页面用于调试,开发完后再为其手写文档 ...

  5. linux c/c++ 代码使用 doxygen 自动生成文档

    www.doxygen.org 的使用非常方便,下面分成2步介绍一下 1. 注释风格,需要在c/c++代码中按照下面的风格添加注释,基本上还是很顺手的 C++的注释风格 主要使用下面这种样式:即在注释 ...

  6. 使用DocFX生成文档

    使用DocFX命令行生成文档 使用docfx 命令 1.下载 https://github.com/dotnet/docfx/releases 2.使用 创建初始项目 docfx init -q 此命 ...

  7. docwizard c++程序文档自动生成工具_如何开发一个基于 TypeScript 的工具库并自动生成文档

    为什么用 TypeScript? TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any ...

  8. 使用javadoc命令生成文档

    可以使用命令 javadoc *.java 生成文档

  9. 配置WCF同时支持WSDL和REST,swaggerwcf生成文档

    配置WCF同时支持WSDL和REST,SwaggerWCF生成文档 VS创建一个WCF工程,通过NuGet添加SwaggerWcf 创建完成后通过 程序包管理控制台 pm>Install-Pac ...

  10. 使用eclipse生成文档(javadoc)

    作者:xyz 使用eclipse生成文档(javadoc) 使用eclipse生成文档(javadoc)主要有三种方法: 1,在项目列表中按右键,选择Export(导出),然后在Export(导出)对 ...

最新文章

  1. 架空输电线路运行规程_架空输电线路导、地线安全系数的规定
  2. cassandra java driver
  3. vue.js安装问题
  4. 深入探究VC —— 链接器link.exe(4)【转】http://blog.csdn.net/wangningyu/article/details/4849452...
  5. mysqldump全量恢复_mysql全量备份和快速恢复的方法整理
  6. 【clickhouse】ClickHouse之DBA运维宝典
  7. java随笔-扫描使用指定注解的类与方法
  8. .NET 轻松实现HTML的绝对过滤之SafeHelper
  9. SSM之Mybatis框架
  10. System.Trunc、System.Round、System.Int - 返回整数部分
  11. 《HTML and CSS Design and Build Websites》学习笔记之HTML5表单新增功能
  12. MATLAB编程实例
  13. 热敏电阻温度计算 公式 程序
  14. Mac蓝牙无法使用怎么办?教你7个修复蓝牙的技巧
  15. linux目录和文件
  16. mail.yahoo.com.cn:yahoo邮箱用outlook无法发信问题的解决办法
  17. 恐怕我今天不能在计算机上工作英语,英语翻译1、恐怕我现在不能走,因为我还没做完作业.( )i cannot leave now because i hav...
  18. 【雷达通信】滤波及数据融合【滤波包括了常增益滤波、卡尔曼(Kalman)滤波和扩展卡尔曼滤波(EKF) 数据融合采用BC和CC两种,基于KF和EKF实现】(Matlab代码实现)
  19. 一个文科生的工程师之路
  20. fiddler无法抓取微信小程序的请求信息

热门文章

  1. 墨迹天气html嵌入,墨迹天气怎么添加桌面插件
  2. RUBY发送验证码通知短信(互亿无线)
  3. 常用的开源3D游戏引擎(转)
  4. Linux系统分区概念
  5. android连接打印机打印pdf文件,如何在Android设备上打印PDF文件
  6. 颜色空间转换-从RGB到LCH-亮度饱和度色度
  7. HTML5网页设计实例:企业网站设计——红色文化传媒网站(20页) HTML+CSS+JavaScript
  8. 【Unity3D】初学加密技巧(反破解)
  9. 小米笔记本air13-3安装黑苹果macOS
  10. 已知函数ex可以展开为幂级数。现给定一个实数x,要求利用此幂级数部分和求ex的近似值,求和一直继续到最后一项的绝对值小于0.00001。