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

为什么“go vet”仅在某些版本的 Go 中抱怨?

为什么“go vet”仅在某些版本的 Go 中抱怨?

Go
梦里花落0921 2023-07-10 16:41:40
今天,我将“go vet”纳入了构建 Go 服务的管道之一。我想知道为什么go vet我本地机器上的输出与 CI 服务器上运行的输出不同。我发现 go 版本有所不同 - 至少有一点不同。我的本地 Go 版本是 1.12.4,CI 版本是 1.12.7。这个事实可以解释不同的行为,但我不明白为什么会发生这种情况!有气味:type Something struct {    ...    BatteryNumber string    `json:"number"`    ...}type SomethingWithBattery struct {    Something    Number            string   `json:"number"`    ...}因此,在结构标签中使用两次“数字”,因为 Something-struct 嵌套 SomethingWithBattery - 1.12.4 抱怨,1.12.7 则不然。为什么?
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

Go 1 和 Go 程序的未来

工具

最后,Go 工具链(编译器、链接器、构建工具等)正在积极开发中,可能会改变行为。例如,这意味着依赖于工具的位置和属性的脚本可能会被单点版本破坏。


go vet正在积极开发中,最近已被重写。工具没有兼容性保证,只有语言。


cmd/vet:考虑恢复嵌入字段的标签冲突#30465

go vet 由于有意使用 json 标签隐藏嵌入字段而失败。


此外,Go 工具还修复了错误。例如,问题 30465。


查看完整回答
反对 回复 2023-07-10
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

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