Golang文档行为是一个bug吗?

Golang文档行为是一个bug吗? 不确定这是否是提问的最佳地点,但我对 go doc 的这个结果感到好奇。

当我像这样声明多个变量时:

package main

var (
	A = 1
	B = 2
	C = 3
	D = 4
)
var E = 5

那么 go doc -short 不会显示所有的 A、B、C、D:

var A = 1 ...
var E = 5

我试图获取一个包中所有导出符号的列表。在这种情况下,有六个错误是使用多行 var 语法声明的。其中三个会通过 go doc -short 列出,但最后三个被跳过了。go doc 是按预期工作的吗?


更多关于Golang文档行为是一个bug吗?的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于Golang文档行为是一个bug吗?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


根据你的描述,go doc -short 的行为是符合预期的,这不是一个 bug。go doc 在显示变量时,对于使用分组语法(var (...))声明的变量,只会显示该分组中的第一个变量,除非你使用 -all 标志。

这是因为 go doc 默认采用“简短”模式,旨在提供简洁的概述。在分组声明中,它假设同一分组内的变量具有相关性,因此只显示第一个作为代表。要查看所有导出的符号,你应该使用 go doc -allgo doc -short -all

以下是一个示例,演示了 go doc 的不同行为:

package example

var (
    First  = 1
    Second = 2
    Third  = 3
)

var Fourth = 4

运行 go doc -short 将输出:

var First = 1 ...
var Fourth = 4

运行 go doc -short -all 将输出所有变量:

var First = 1 ...
var Fourth = 4
var Second = 2 ...
var Third = 3 ...

如果你需要获取包中所有导出符号的完整列表,建议使用 go doc -all。例如,对于你的包,可以运行:

go doc -all -short

这将确保列出所有导出的变量,包括分组声明中的每一个。

回到顶部