go中如何判断两个错误相同

baotianjiazhi · · 3355 次点击
15982195424
一念之间,恍若地狱恍若天堂
通过打印类型 fmt.Printf("%T, %T\n", err1, err2) 可以知道,error是*errors.errorString指针类型; 进一步打印地址值 fmt.Printf("%p, %p\n", err1, err2) ,结果0xc0000401c0, 0xc0000401d0; 因此若要查看两个error是否相等 可以使用它们的值来做比较 if err1.Error() == err2.Error(),此处判断两个字符串是否相等
#1
更多评论
<a href="/user/15982195424" title="@15982195424">@15982195424</a> 好的 去测试了一下发现是这样的 感谢!
#2
这只有错误信息不会变化的时候才可能相等。 其实很多库会提供方法来判断错误是否属于某一类的。
#3