为了账号安全,请及时绑定邮箱和手机立即绑定

文件不是带有“-s”的“gofmt”:为什么会发生这种情况以及如何解决它?

文件不是带有“-s”的“gofmt”:为什么会发生这种情况以及如何解决它?

Go
当年话下 2022-09-26 19:54:31
我们使用一个 linter(对于 Golang),每次我们在存储库上打开或更新拉取请求时,它都会通过 Github 操作工作流运行。它最近开始返回以下错误:File is not `gofmt`-ed with `-s` (gofmt)在此另一个PR中发生的事情之后,文件。(编辑:添加链接以评估并最终重现错误)pkg/api/api/go证据:我想了解此错误的来源是什么,以及如何解决它?
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

错误的来源

文件未根据Go规则正确格式化时,似乎可以返回此错误。

例如:如果您不小心使用了制表符缩进而不是空格。

编辑:黑绿的答案提供了有关错误来源的更准确的详细信息


如何解决

您可以使用以下 Go 命令:

gofmt -s -w <path_to_file>.go

...,然后提交代码。

请注意,在我的情况下:gofmt -w pkg/api/api.go足以解决问题(没有-s标志,我觉得这很奇怪,因为错误特别要求-s)。

源 1 + 源 2


查看完整回答
反对 回复 2022-09-26
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

中的标志与格式无关。这是关于简化代码:-sgofmt

尝试简化代码(在应用重写规则(如果有)之后)。

您看到的警告来自棉绒绒。由于您声称已通过运行 修复了错误,因此提示“with ”的存在可能是由于以下错误:https://github.com/golangci/golangci-lint/issues/513gofmt -w-s

链接的问题已于 2019 年修复,随 v1.17.0 发布。您可能需要检查管道是否正在使用旧版本。

假设您的文件仅仅因为未格式化而触发了警告,则解决了由于覆盖文件而导致的问题:pkg/api/api.gogofmt -w-w

如果文件的格式与 gofmt 的格式不同,请使用 gofmt 的版本覆盖它。


查看完整回答
反对 回复 2022-09-26
  • 2 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信