使用带有errorf而不是sprintf的错误

时间:2018-11-18 15:44:35

标签: go formatting lint

我在项目中使用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)),但出现错误,无法将fmtErrorf用作字符串类型

1 个答案:

答案 0 :(得分:4)

fmt.Errorf返回一个error,而errors.New则返回一个string,这就是您的代码无法编译的原因。

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