我在golang中尝试了这段代码
type Agent struct {
name string // Not exported
categoryId int // Not exported
}
Run Code Online (Sandbox Code Playgroud)
然后我得到了
exported type Agent should have comment or be unexported
Run Code Online (Sandbox Code Playgroud)
该警告有点烦人。
如何摆脱它?我应该发表什么评论?是否有任何默认的评论模板?
它要求我发表评论,但默认情况下没有提供我添加评论。
inf*_*k01 41
这个警告是由官方出品棉短绒为围棋源代码- golint。Golint被Visual Studio Code 编辑器中的Go 扩展用作默认linter。
要了解原因,为什么golint显示警告,大家可以参考“评论”部分中的“有效围棋”(官方文件给出提示字迹清晰,地道的Go代码)。这是相关的报价:
程序中的每个导出(大写)名称都应该有一个文档注释。
但是,如果您倾向于编写自文档化代码,这确实会很烦人(即意图从名称本身等中就很清楚)。
除了已经提出的解决方案,您可以做的是开始使用替代和更高级的golangci-lint,它是一个 Go linters聚合器。它golint 默认是禁用的,所以错过这个恼人的警告文档注释不会被触发。当然,如果需要,您可以使用相关标志(参见--exclude strings和--exclude-use-default)打开此警告。
在 Go 扩展的描述页面上也提到了更改 linter 的可能性:
要在 VS Code 中更改 lint 工具,请执行以下步骤。
1)在Go Extension的管理菜单中选择“ Configure Extension Settings ”:
2)从相关下拉列表中选择“golangci-lint”:
3)为防止 VS Code 因使用此强大的 linter 而冻结,请添加“编辑器集成”说明--fast中所述的标志。
为此,您需要导航到 Go Extension 配置页面(如步骤 1 中所述),打开settings.json文件并添加相关配置,如下面的屏幕截图所示:
注意!这是“ golangci-lint ”常见问题解答中的引述:
为什么在第一次运行时使用 --fast 运行很慢?
因为第一次运行会缓存类型信息。所有后续运行都将很快。通常在本地机器上开发期间使用此选项,并且已经执行了编译。
Ull*_*kut 12
只需在其上方添加评论,如下所示:
// Agent is ...
type Agent struct {
name string
categoryId int
}
Run Code Online (Sandbox Code Playgroud)
此注释是因为您的Agent类型已导出,即使其属性未导出。要不导出您的类型,请使用小写字母进行定义,如下所示:
type agent struct {
name string
categoryId int
}
Run Code Online (Sandbox Code Playgroud)