==
,并建议改用 errors.Is
。
从 Go 1.13 开始,可以使用 fmt.Errorf
函数和 %w
动词来包装错误。 因此,对于已包装错误,使用相等检查直接比较错误会失败。 检查特定错误的首选方式是使用标准库中的 errors.Is 函数,因为此函数会在检查特定错误时遍历包装错误链。
有关 errors.Is
的详细信息,请参阅 working with Errors in Go 1.13。
该快速修复会将错误的直接比较替换为调用 errors.Is
。
示例:
if err == MyError {
fmt.Println("MyErr")
}
在应用快速修复后:
if errors.Is(err, MyError) {
fmt.Println("MyErr")
}