写 Go 时如何优雅地查文档
某天写代码时发现自己对 IDE 的依赖非常深,如果没了 Goland 就不会写代码了,心里为之一惊。
Goland 的自动补全功能已经是必需品了,只要打出相关的几个字符,不管是变量名还是函数调用,都能帮你直接补全。我们只需要往相应的位置填东西就行了。
进而又想到,当补全功能缺失或者暂时失灵的情况下,该如何快速地查出某个函数的具体用法呢?
假设我们想要对字符串做 split,却忘了具体用法,下面是几种常见的查文档方法。
在设置了语言是 english 的情况下,还是挺精准的。直接定位到 Go 官方文档。
Dash
同样很准确,搜索词不需要很精准。
devdocs.io[1]
这个也不错,而且支持很多种语言。
pkg.go.dev
优点是官方文档,最权威,逼格最高。缺点是要准确地记住包名+函数名。
go doc
优点是直接 iTerm2 里就可以查看,缺点是需要准确地记住包名+函数名。
有些大佬用 vim 写代码,在 shell 环境里直接能查文档,还是很有用的。不过对我等用 Goland 的菜鸡用处不大。????
上面这几种方法我用得最多的还是 Google,可能这并不是最快的方式,但是它总是能帮你找到所有有用的信息。没有 Google,我可能也不会写代码了。
最近看到一篇文章[2],就讲了如何利用 Go 标准库做出一个好用的查文档工具。
原理是利用 Go 提供的包解析工具,把所有的导出类型列出来。然后在我们搜索的时候用模糊匹配的方式找到符合的类型,再用这个精确的类型调用 go doc
。
流程如下:
在 Linux 下结合 dmenu,使用非常顺滑:
偷个懒,直接用原文的动图。????
当然,不嫌弃浏览器的情况下,还提供了一个可视化的界面,同样有模糊匹配的功能且可以一键直达 pkg.go.dev
对应的页面。比 google 可能快一点。
选中其中一个,会直接跳转过来:
后记
不过,即使知道了这些方法,可能最后还是会退化到用 Google 直接搜,因为啥都不需要记,所有的东西都可以用 Google 搜索出来。
这也是最方便的方法,什么额外的事情都不用做。因为方便,成本低,自然就想把所有的事情都挪到它上面来做,即使有很多专业的查文档工具的情况下,还是会这么做。
一件事,如果容易,那就会经常做。反之,如果成本比较高,结果不是做这件事花的时间更多,而是我们选择不去做它。
不知道你平时查文档时用的什么方法,欢迎留言一起讨论。
参考资料
[1]
devdocs.io: https://devdocs.io/
[2]
文章: https://eli.thegreenplace.net/2018/command-line-autocomplete-for-go-documentation/
写 Go 时如何优雅地查文档相关推荐
- JavaScript内置对象(内置对象、查文档(MDN)、Math对象、日期对象、数组对象、字符串对象)
目录 JavaScript内置对象 内置对象 查文档 MDN Math对象 Math概述 案例一:封装自己的对象 随机数方法 random() 案例一:猜数字游戏 日期对象 Date 概述 Date( ...
- 写好一份软件开发设计文档
如何写好一份软件开发设计文档 转载: 设计文档 - 也被称作技术规范和实现手册,描述了你如何去解决一个问题,是确保正确完成工作最有用的工具,其目的是迫使你对设计展开缜密的思考,并收集他人的反馈,进而完 ...
- 商城项目16_es简介、详解倒排索引、安装es以及kibana、检索es基本信息、增删改查文档
文章目录 ①. es - 背景.概述.功能.场景 ②. 核心概念 - 索引.类型.文档.映射 ③. es - 详解倒排索引 ④. 安装elasticSearch.kibana 7.4.2 ⑤. 索引操 ...
- java之全文索引搜索lucene之增删改查文档与中文分词搜索
java之全文索引搜索lucene之增删改查文档与中文分词搜索 接上文,接下来介绍一个lucene的各种query,然后介绍一下中文全文索引搜索. 对于各种query,我就直接上代码了,具体的话,我已 ...
- 写一个可以一键统一调整word文档格式的程序
要写一个可以一键统一调整 Word 文档格式的程序,可以使用 Microsoft Office Word 的 VBA 功能来实现. 步骤如下: 打开 Word 文档,在菜单栏中点击"开发人员 ...
- 如何写一篇好的职场文档
声明:本篇文章的主要内容本非笔者本人写述,而是来自一位笔者的一位导师,真的写的很棒,在原有的基础上笔者进行了一定的调整和融入,希望可以让更多朋友能有所帮助. 写在前面 • 以终为始,心中一定要有&qu ...
- 如何在家写出一份无懈可击的产品文档
www.pmcaff.com 本文为作者 我是仔仔侠 于社区发布 困在家里,每天起床 - 开早会 - 开项目会议 - 刷牙洗脸 - 看文档邮件 - 开项目会议 - 循环往复直至睡觉,不胖都难... 每 ...
- 如何写出受技术欢迎的需求文档
综述 正如我们做出来的产品都希望受用户欢迎,开发和测试是需求文档的用户,产品经理也应该重视他们的想法和要求才能写得令人满意. "写需求文档"说专业点是把用户(或运营.客服等)的需求 ...
- Java写手机专题分析接口_jeesite学习文档API-内容管理模块
内容管理模块功能说明ThinkGem 2014年6月17日 目录 1.管理功能 1.1.内容管理 1.1.1.内容发布 1.1.1.1.概述 栏目列表:以树结构方式显示网站整体设置的栏目,点击在右侧可 ...
最新文章
- Android native 开发总结
- 当会打王者荣耀的AI学会踢足球,一不小心拿下世界冠军!
- JUKI贴片机RX-7R_JUKI贴片机_贴片机
- BZOJ2131免费的馅饼 DP+树状数组
- jstack命令:教你如何排查多线程问题
- GridView应用整理
- 截网页全屏图的方法-截网页全屏软件-Web2Pic Pro
- 登入Github、Git本地上传及Visual Studio Code上传教程
- python gui 选择
- 学地球物理的如何搞好软件开发
- 基于bootstrap的时间选择插件daterangepicker以及汉化方法
- 三种网络协议的连接方式
- 来了来了!github开源作业车间调度平台正式上线!
- Server.MapPath()用法
- [转载] 像 IDE 一样使用 vim
- R语言-聚类分析(系统聚类)
- PDF文件添加图片、文字合成(java)
- IntelliJ IDEA 创建普通 JavaSE 项目
- 邮件开头结尾一些不同的表达
- ps照片人像油画复古效果怎么做
热门文章
- eof怎么结束输入_SimRobot算法社第二次活动圆满结束啦!
- linux中wget命令出现错误,(转)linux中wget未找到命令
- python路径拼接os.path.join()函数和os.makedirs的用法
- 端口号被占用时,查找占用该端口号的进程并释放端口号
- 流式套接字(SOCK_STREAM),数据报套接字 (SOCK_DGRAM) 的比较
- 问题:linux系统经常出现断网的情况,重启之后系统恢复正常
- build.xml引用其它文件的任务
- mysql5.7 solo web服务器
- 《Python数据挖掘:概念、方法与实践》——1.5节小结
- nginx $document_uri 参数使用