在Sprintf上进行兽医警告

时间:2018-11-02 13:27:20

标签: go

我正在一个项目中使用以下类似内容

func Test(format string, args ...interface{}) string {
    return fmt.Sprintf(format, args...)
}

现在,当我运行go vet -v ./...时,它会警告我:

  

无法在调用Sprintf时检查非恒定格式

据我所知,这是因为Sprintf的第一个参数不是常量,并且可以是基本上以格式字符串形式传递的任何内容。 也很常见,例如here on vet test itself

现在,我知道这是兽医工具中的一个错误,可以通过将-printf=false参数传递给兽医来解决。但这也会禁用所有其他printf检查,这是我不希望的。

现在真正的问题是,如何解决这些警告?

1 个答案:

答案 0 :(得分:2)

如果通过gometalinter软件包调用“ go vet”,则可以在注释中使用no-lint directive告诉gometalinter忽略某些警告。示例:

func Test(format string, args ...interface{}) string {
    return fmt.Sprintf(format, args...) // nolint: vet
}