某天写代码时发现自己对 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/

写 Go 时如何优雅地查文档相关推荐

  1. JavaScript内置对象(内置对象、查文档(MDN)、Math对象、日期对象、数组对象、字符串对象)

    目录 JavaScript内置对象 内置对象 查文档 MDN Math对象 Math概述 案例一:封装自己的对象 随机数方法 random() 案例一:猜数字游戏 日期对象 Date 概述 Date( ...

  2. 写好一份软件开发设计文档

    如何写好一份软件开发设计文档 转载: 设计文档 - 也被称作技术规范和实现手册,描述了你如何去解决一个问题,是确保正确完成工作最有用的工具,其目的是迫使你对设计展开缜密的思考,并收集他人的反馈,进而完 ...

  3. 商城项目16_es简介、详解倒排索引、安装es以及kibana、检索es基本信息、增删改查文档

    文章目录 ①. es - 背景.概述.功能.场景 ②. 核心概念 - 索引.类型.文档.映射 ③. es - 详解倒排索引 ④. 安装elasticSearch.kibana 7.4.2 ⑤. 索引操 ...

  4. java之全文索引搜索lucene之增删改查文档与中文分词搜索

    java之全文索引搜索lucene之增删改查文档与中文分词搜索 接上文,接下来介绍一个lucene的各种query,然后介绍一下中文全文索引搜索. 对于各种query,我就直接上代码了,具体的话,我已 ...

  5. 写一个可以一键统一调整word文档格式的程序

    要写一个可以一键统一调整 Word 文档格式的程序,可以使用 Microsoft Office Word 的 VBA 功能来实现. 步骤如下: 打开 Word 文档,在菜单栏中点击"开发人员 ...

  6. 如何写一篇好的职场文档

    声明:本篇文章的主要内容本非笔者本人写述,而是来自一位笔者的一位导师,真的写的很棒,在原有的基础上笔者进行了一定的调整和融入,希望可以让更多朋友能有所帮助. 写在前面 • 以终为始,心中一定要有&qu ...

  7. 如何在家写出一份无懈可击的产品文档

    www.pmcaff.com 本文为作者 我是仔仔侠 于社区发布 困在家里,每天起床 - 开早会 - 开项目会议 - 刷牙洗脸 - 看文档邮件 - 开项目会议 - 循环往复直至睡觉,不胖都难... 每 ...

  8. 如何写出受技术欢迎的需求文档

    综述 正如我们做出来的产品都希望受用户欢迎,开发和测试是需求文档的用户,产品经理也应该重视他们的想法和要求才能写得令人满意. "写需求文档"说专业点是把用户(或运营.客服等)的需求 ...

  9. Java写手机专题分析接口_jeesite学习文档API-内容管理模块

    内容管理模块功能说明ThinkGem 2014年6月17日 目录 1.管理功能 1.1.内容管理 1.1.1.内容发布 1.1.1.1.概述 栏目列表:以树结构方式显示网站整体设置的栏目,点击在右侧可 ...

最新文章

  1. Android native 开发总结
  2. 当会打王者荣耀的AI学会踢足球,一不小心拿下世界冠军!
  3. JUKI贴片机RX-7R_JUKI贴片机_贴片机
  4. BZOJ2131免费的馅饼 DP+树状数组
  5. jstack命令:教你如何排查多线程问题
  6. GridView应用整理
  7. 截网页全屏图的方法-截网页全屏软件-Web2Pic Pro
  8. 登入Github、Git本地上传及Visual Studio Code上传教程
  9. python gui 选择
  10. 学地球物理的如何搞好软件开发
  11. 基于bootstrap的时间选择插件daterangepicker以及汉化方法
  12. 三种网络协议的连接方式
  13. 来了来了!github开源作业车间调度平台正式上线!
  14. Server.MapPath()用法
  15. [转载] 像 IDE 一样使用 vim
  16. R语言-聚类分析(系统聚类)
  17. PDF文件添加图片、文字合成(java)
  18. IntelliJ IDEA 创建普通 JavaSE 项目
  19. 邮件开头结尾一些不同的表达
  20. ps照片人像油画复古效果怎么做

热门文章

  1. eof怎么结束输入_SimRobot算法社第二次活动圆满结束啦!
  2. linux中wget命令出现错误,(转)linux中wget未找到命令
  3. python路径拼接os.path.join()函数和os.makedirs的用法
  4. 端口号被占用时,查找占用该端口号的进程并释放端口号
  5. 流式套接字(SOCK_STREAM),数据报套接字 (SOCK_DGRAM) 的比较
  6. 问题:linux系统经常出现断网的情况,重启之后系统恢复正常
  7. build.xml引用其它文件的任务
  8. mysql5.7 solo web服务器
  9. 《Python数据挖掘:概念、方法与实践》——1.5节小结
  10. nginx $document_uri 参数使用