我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Golang中的godoc使用简介(推荐)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Golang中的godoc使用简介(推荐)

go doc简介

Godoc是go语言的文档化工具,类似于文档化工具godoc,类似于Python的Docstring和Java的Javadoc
Godoc通过解析包含注释的Go代码来生成HTML或文本类型的文档。

Golang中的godoc使用简介

学习go语法的同时为了方便查看对应的文档,不同的Go版本会有一些改动,所以,使用本地Go源码生成的文档显然更精确。

go在1.13之前是自带godoc的,之后的版本需要自行安装。

go get -u golang.org/x/tools/cmd/godoc // 并没有自动安装
go install golang.org/x/tools/cmd/godoc // 手动安装

> godoc -h

usage: godoc -http=localhost:6060
  -goroot string
        Go root directory (default "D:\\Go")
  -http string
        HTTP service address (default "localhost:6060")
  -index
        enable search index
  -index_files string
        glob pattern specifying index files; if not empty, the index is read from these files in sorted order
  -index_interval duration
        interval of indexing; 0 for default (5m), negative to only index once at startup
  -index_throttle float
        index throttle value; 0.0 = no time allocated, 1.0 = full throttle (default 0.75)
  -links
        link identifiers to their declarations (default true)
  -maxresults int
        maximum number of full text search results shown (default 10000)
  -notes string
        regular expression matching note markers to show (default "BUG")
  -play
        enable playground
  -templates string
        load templates/JS/CSS from disk in this directory
  -timestamps
        show timestamps with directory listings
  -url string
        print HTML for named URL
  -v    verbose mode
  -write_index
        write index to a file; the file name must be specified with -index_files
  -zip string
        zip file providing the file system to serve; disabled if empty

进入到Go源码目录,D:\Go\class="lazy" data-src
godoc -http=:6060
扫描文件需要时间,启动之后有时候还要等一会。
访问浏览器 http://localhost:6060/

访问指定的包
http://localhost:6060/pkg/fmt/
http://localhost:6060/pkg/archive/tar/

可以通过godoc -url "http://localhost:6060/pkg/" > doc.html导出为静态的html单个文件,但是这个体验很差。

如果我们要查看一个第三方包的文档,比如 github.com/julienschmidt/httprouter
首先要进入它的源码目录
godoc -http=localhost:6060
第一部分依然是 Go Standard library,第二部分 Third party 才是 httprouter 的文档

如果我们要查看某个项目的文档也可以使用这种方式,然后我就发现我们自己写的项目大多没有什么注释,于是这就牵涉到注释的规范。

注释使用//加一个空格并且要紧跟着被注释对象的上方。

首先需要给package加上注释,说明此包的作用,例如

// Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer
// object, creating another object (Reader or Writer) that also implements
// the interface but provides buffering and some help for textual I/O.
package bufio

同一目录下的包可以由很多个文件组成,如果每个文件都有对package进行注释的话,godoc会自动将所有注释"按照文件名的字母数序"进行合并

在无效注释中以BUG(who)开头的注释, 将被识别为已知bug, 显示在bugs区域

  // BUG(who): 因为前面有BUG(who)这个关键字,所以这句注释就算没有紧跟关键字不会被隐藏掉

关于DEPRECATED弃用

// Time returns an int64 unix timestamp in milliseconds of the snowflake ID time
// DEPRECATED: the below function will be removed in a future release.
func (f ID) Time() int64 {
	return (int64(f) >> timeShift) + Epoch
}

在注释符要缩进的话,第二行注释符后面的空格要比上一行的空格多一个

  example:
      // 123
      //  123

关于 go doc xxx
主要用来在终端上查看某个包的文档,它也是通过扫描包内的一些注释,然后格式化输出,但很少这么用。

> go doc fmt

package fmt // import "fmt"
Package fmt implements formatted I/O with functions analogous to C's printf
and scanf. The format 'verbs' are derived from C's but are simpler.
Printing
The verbs:
General:

    %v  the value in a default format
        when printing structs, the plus flag (%+v) adds field names
    %#v a Go-syntax representation of the value
    %T  a Go-syntax representation of the type of the value
    %%  a literal percent sign; consumes no value
...
...

go doc约定规则

godoc
Go的注释规则很简单,为类型,变量,常量,函数或包编写注释时,直接在这些声明前编写普通形式的注释,中间不留空行即可。Godoc将这些注释与后面的声明连接到一起,达到文档化的目的。

1.注释符// 后加空格

// 这是一行注释
package main

2.注释紧邻关键字行写,否则不会被识别

// 不会被识别
// 会被识别
package main
// 不会被识别
 
// 会被识别1
// 会被识别2
func main(){
}

3.注释行的数量最好不要超过3行

4.已知bug注释:BUG(who)
godoc的输出将忽略那些与顶层声明不相邻的注释,只有一个例外,那就是以BUG(who)开头的注释。这些注释将被识别为已知的bug,并包含在文档的BUGS区。

// 注释
package main
// BUG(who)  //会被识别,放入文档的Bugs区
const a = 8

使用命令

首先在命令行进入所需要执行的.go文档目录
例:我的test.go放在C:/GoProject/class="lazy" data-src/test/ 目录下
需要在命令行进入C:/GoProject/class="lazy" data-src/test/
然后执行命令

godoc -http=:6060     //6060是godoc提供的默认端口

在浏览器输入 localhost:6060,即可进入godoc的网站,查看自己的文档需要在地址栏输入路径 localhost:6060/pkg/test

到此这篇关于Golang中的godoc使用简介的文章就介绍到这了,更多相关go语言godoc使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Golang中的godoc使用简介(推荐)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

基于MyBatis的简单使用(推荐)

MyBatisMyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信
2023-05-31

Java反射使用的详细介绍(最新推荐)

这篇文章主要介绍了Java反射使用的详细介绍,反射的第一步都是先得到编译后的Class类对象,然后就可以得到Class的全部成分,本文结合实例代码详细讲解,需要的朋友可以参考下
2023-02-15

在Linux命令行终端中使用python的简单方法(推荐)

Linux终端中的操作均是使用命令行来进行的。因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来。 打开命令行窗口 打开命令行窗口的快捷键如下: Ctrl + Alt + t 关闭名命令
2022-06-04

C#中多线程Tread的使用(推荐)

线程是操作系统分配CPU时间的基本单元,在一个进程中可以有多个线程同时执行代码,这篇文章主要介绍了C#中多线程的使用Tread,需要的朋友可以参考下
2022-11-13

使用Nodejs 实现一个简单的 Redis客户端(推荐)

在nodejs中支持TCP连接的是net模块, 其中使用createConnection(config)或者直接new Socket(config)来初始化一个TCP连接,这篇文章主要介绍了用Nodejs 实现一个简单的 Redis客户端,需要的朋友可以参考下
2022-11-13

Spring中Transactional注解使用的心得(推荐)

这篇文章主要介绍了Spring中Transactional注解使用的心得,事务是用来控制数据的ACID特性的,用于保证数据的正确性和完整性,需要的朋友可以参考下
2022-11-13

关于golang中map使用的几点注意事项总结(强烈推荐!)

map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用,下面这篇文章主要给大家介绍了关于golang中map使用的几点注意事项,需要的朋友可以参考下
2023-01-28

Python使用SeleniumWebDriver的入门介绍及安装教程(最新推荐)

这篇文章主要介绍了Python使用SeleniumWebDriver的入门介绍及安装教程,本文使用环境为python3.11+win1064位+firefox浏览器,所以本文使用的浏览器驱动是Firefox的geckodriver,如果你使用的是其他浏览器,那么选择自己对应的浏览器驱动程序即可,需要的朋友可以参考下
2023-05-15

vue中的v-if基本使用(最新推荐)

v-if根据表达式的真假,切换元素的显示和隐藏操作DOM元素,这篇文章主要介绍了vue中的v-if基本使用,需要的朋友可以参考下
2022-12-08

Go WaitGroup简介及在Golang中的应用领域

WaitGroup是Go语言中的一个并发原语,用于等待一组Go协程完成任务。它提供了一种简单的方式来同步多个并发任务的完成。WaitGroup的主要功能包括三个方法:- Add(delta int):用于向WaitGroup中添加或减少等待
2023-10-08

Mybatis分页插件PageHelper的配置和简单使用方法(推荐)

前言在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页。前端分页一次性请求数据表格中的所有记录(ajax),然后在前端缓存并且计算count和分页逻辑,一般前端组件(例
2023-05-30

Node.js中的require.resolve方法使用简介

前言 网上关于NodeJs的论述很多,此处不多说。个人认为,NodeJs的编程思想和客户端Javascript保持了一种理念,没有什么变化,只是增加了“require()”函数,因此只要学好require函数,剩下的问题就是如何更好的使用A
2022-06-04

使用Python进行二进制文件读写的简单方法(推荐)

总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。 python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字
2022-06-04

如何使用MySQL和Java实现一个简单的电影推荐功能

如何使用MySQL和Java实现一个简单的电影推荐功能近年来,随着互联网和大数据的普及,电影推荐功能成为很多影视平台的重要组成部分。通过分析用户的喜好和行为,可以精准地推荐给用户适合的电影,提升用户体验和平台的活跃度。本文将介绍如何使用My
2023-10-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录