2 回答
TA贡献1812条经验 获得超5个赞
u, ok := err.(interface {
Unwrap() error
})
此代码确保 err 对象(它确实是一个接口)具有带有 签名的方法。例:Unwrap() error
package main
import (
"fmt"
)
type myError struct{}
func (e myError) Error() string {
return "it is my error"
}
func main() {
var e1 error
e1 = &myError{}
u, ok := e1.(interface {
Unwrap() error
})
fmt.Printf("e1: %v -> %v\n",u,ok)
e2 := fmt.Errorf("E2: %w", e1)
u, ok = e2.(interface {
Unwrap() error
})
fmt.Printf("e2: %v -> %v\n",u,ok)
}
这将打印
e1: <nil> -> false
e2: E2: it is my error -> true
TA贡献1872条经验 获得超3个赞
错误类型为接口类型。错误变量表示可将自身描述为字符串的任何值。下面是接口的声明:
type error interface { Error() string }
有关更多详细信息,请参阅 - https://blog.golang.org/error-handling-and-go
- 2 回答
- 0 关注
- 93 浏览
添加回答
举报