写 Go 时如何优雅地查文档

开发 后端
Goland 的自动补全功能已经是必需品了,只要打出相关的几个字符,不管是变量名还是函数调用,都能帮你直接补全。我们只需要往相应的位置填东西就行了。

[[422540]]

本文转载自微信公众号「码农桃花源」,作者qcrao。转载本文请联系码农桃花源公众号。

某天写代码时发现自己对 IDE 的依赖非常深,如果没了 Goland 就不会写代码了,心里为之一惊。

Goland 的自动补全功能已经是必需品了,只要打出相关的几个字符,不管是变量名还是函数调用,都能帮你直接补全。我们只需要往相应的位置填东西就行了。

进而又想到,当补全功能缺失或者暂时失灵的情况下,该如何快速地查出某个函数的具体用法呢?

假设我们想要对字符串做 split,却忘了具体用法,下面是几种常见的查文档方法。

Google

google

在设置了语言是 english 的情况下,还是挺精准的。直接定位到 Go 官方文档。

Dash

Dash

同样很准确,搜索词不需要很精准。

devdocs.io[1]

devdocs

这个也不错,而且支持很多种语言。

pkg.go.dev

pkg.go.dev

优点是官方文档,最权威,逼格最高。缺点是要准确地记住包名+函数名。

go doc

cmd

优点是直接 iTerm2 里就可以查看,缺点是需要准确地记住包名+函数名。

有些大佬用 vim 写代码,在 shell 环境里直接能查文档,还是很有用的。不过对我等用 Goland 的菜鸡用处不大。

上面这几种方法我用得最多的还是 Google,可能这并不是最快的方式,但是它总是能帮你找到所有有用的信息。没有 Google,我可能也不会写代码了。

最近看到一篇文章[2],就讲了如何利用 Go 标准库做出一个好用的查文档工具。

原理是利用 Go 提供的包解析工具,把所有的导出类型列出来。然后在我们搜索的时候用模糊匹配的方式找到符合的类型,再用这个精确的类型调用 go doc。

流程如下:

gdoc 原理

在 Linux 下结合 dmenu,使用非常顺滑:

gdoc-cmd

偷个懒,直接用原文的动图。??

当然,不嫌弃浏览器的情况下,还提供了一个可视化的界面,同样有模糊匹配的功能且可以一键直达 pkg.go.dev 对应的页面。比 google 可能快一点。

gdoc-web

选中其中一个,会直接跳转过来:

跳转到 pkg.go.dev

后记

不过,即使知道了这些方法,可能最后还是会退化到用 Google 直接搜,因为啥都不需要记,所有的东西都可以用 Google 搜索出来。

这也是最方便的方法,什么额外的事情都不用做。因为方便,成本低,自然就想把所有的事情都挪到它上面来做,即使有很多专业的查文档工具的情况下,还是会这么做。

一件事,如果容易,那就会经常做。反之,如果成本比较高,结果不是做这件事花的时间更多,而是我们选择不去做它。

不知道你平时查文档时用的什么方法,欢迎留言一起讨论。

参考资料

[1]devdocs.io: https://devdocs.io/

[2]文章: https://eli.thegreenplace.net/2018/command-line-autocomplete-for-go-documentation/

 

责任编辑:武晓燕 来源: 码农桃花源
相关推荐

2021-03-24 10:20:50

Fonts前端代码

2024-01-30 12:08:31

Go框架停止服务

2021-07-15 08:58:15

指定配置项Go

2024-11-13 16:37:00

Java线程池

2021-05-12 22:07:43

并发编排任务

2021-01-18 13:17:04

鸿蒙HarmonyOSAPP

2020-03-26 11:04:00

Linux命令光标

2022-05-13 21:20:23

组件库样式选择器

2022-05-24 06:07:48

JShack用户代码

2021-01-28 14:53:19

PHP编码开发

2024-04-24 12:34:08

Spring事务编程

2020-04-29 10:19:29

Python数据函数

2020-10-22 10:15:33

优化Windows电脑

2023-02-13 14:37:13

开发web浏览器

2020-12-08 08:08:51

Java接口数据

2018-08-20 10:40:09

Redis位图操作

2020-09-25 11:30:20

Java判空代码

2020-07-09 10:15:55

空值Bug语言

2020-11-06 08:13:03

服务器Nodejs客户端

2021-03-26 20:37:14

Prometheus监控指标
点赞
收藏

51CTO技术栈公众号