我正在学习 Go 中的错误比较是如何工作的,并发现了一些我无法理解的东西。
函数errors.Is(err, target error)检查目标是否可比较。
func Is(err, target error) bool {
if target == nil {
return err == target
}
isComparable := reflectlite.TypeOf(target).Comparable()
for {
if isComparable && err == target {
return true
}
鉴于 Go 中的所有接口都是可比较的并且error是一个接口,这个调用处理哪种情况?
慕莱坞森
相关分类