我试图找到正确的比较方法errors,发现了一些奇怪的行为
type errorOne struct{}
func (e errorOne) Error() string {
return "Error One"
}
e1 := errorOne{}
e2 := fmt.Errorf("E2: %w", errorOne{}) // return 'error' interface
res1 := e1 == e2 // false
res2 := errors.Is(e1, e2) // false
res3 := errors.Is(e2, e1) // true
看起来errors.Is(...)不是对称的(或者我不理解方法行为)。
怎么了?
慕侠2389804
万千封印
相关分类