我在我的项目和这段代码中使用了gometalintererrors.New(fmt.Sprintf("%scmd.Stderror:%s",cp[1:],err))我收到错误应该用fmt.Errorf(...)(golint)替换errors.New(fmt.Sprintf(...))知道如何解决这个问题吗?我尝试使用errors.New(fmt.Errorf("%scmd.Stderror:%s",cp[1:],err))我得到错误不能使用fmtErrorf作为输入字符串 最佳答案 fmt.Errorf返回一个error而erro
调用fmt.Printf等字符串格式化函数似乎是Go编译器的弱点。我最终遇到了很多错误(重构后使用了错误的格式化程序,忘记包含所有参数),这些错误只会在运行时显示出来。所以我每次写这些的时候都不得不眯着眼睛。我今天做了一些研究,发现了gotoolvet,它似乎适用于fmt.Printf,但它不会捕获errors.Errorf中的错误(见下文)。import"github.com/pkg/errors"funcReturnError(sstring,iint)error{//Swap%dand%s,andforgettoincludethesecondargumentreturnerro
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭4年前。Improvethisquestion在Go中,函数fmt.Errorf()返回一个错误接口(interface)。检查fmt.Errorf()本身是否失败的正确方法是什么?