如何使用go doc查找Go语言包中的所有常量?
我太懂这种抓马的经历了!之前找time.Second、http.StatusOK这类常量时,也踩过一模一样的坑——直接跑go doc time或者go doc http翻半天,甚至用go doc time | grep Second搜都没结果,差点以为这些常量根本不存在,折腾好久才找到门道!
问题其实出在go doc的默认输出逻辑上:
time.Second这类常量并不是time包的顶层常量,而是隶属于time.Duration类型的关联常量,默认的go doc time只会展示包的顶层声明,所以自然搜不到- 至于
http.StatusOK,它确实是http包的顶层常量,但有时候go doc http的默认输出因为内容太多,只展示了核心部分,直接用grep搜可能也会因为输出截断而漏掉
给你几个高效的查找方法:
- 找类型关联的常量(比如
time.Second):直接指定类型查,比如执行go doc time.Duration,就能看到所有基于Duration的常量,包括Second、Minute、Hour这些 - 精准查找单个常量:直接用
go doc加完整的常量名,比如go doc time.Second或者go doc http.StatusOK,一秒就能定位到对应的定义和注释 - 查看包的全部内容:如果想一次性看到包里所有的声明(包括所有常量、方法、类型),可以加
-all参数,比如go doc -all time,这样就不会漏掉任何内容
当初我也是谷歌搜了快15分钟才搞明白,现在用这些方法找常量再也不用瞎忙活了!
内容的提问来源于stack exchange,提问作者Hubro
相关产品推荐
相关产品推荐

