使用 errorf 而不是 sprintf 的错误

Go using error with errorf and not sprintf

我在我的项目和此代码中使用 gometalinter

errors.New(fmt.Sprintf("%s cmd.Std error: %s ", cp[1:], err))

我遇到错误 should replace errors.New(fmt.Sprintf(...)) with fmt.Errorf(...) (golint)

知道如何解决这个问题吗?

我尝试使用 errors.New(fmt.Errorf("%s cmd.Std error: %s ", cp[1:], err)),但出现错误 cannot use fmtErrorf as type string

fmt.Errorf returns 一个 errorerrors.New 需要一个 string 这就是你的代码无法编译的原因。

您可以简单地省略 errors.New 调用,或者,由于您使用的是 github.com/pkg/errors 包,您可以使用 https://godoc.org/github.com/pkg/errors#Errorf.