背景: 我正在进行单元测试,并尝试检查是否出现了预期的错误。
由于没有得到预期结果,因此我尝试了一些简单的方法,比较精确的错误,并惊讶地发现比较结果返回了“false”。
e1 := errors.New("error")
e2 := errors.New("error")
fmt.Println(e1 == e2) // false
运行示例:https://play.golang.org/p/cvjjiJT_5T
有人能解释一下为什么这会返回false,以及如何正确地检查错误之间的相等性吗?