Min*_*gyu 1 error-handling pointers go
我正在阅读文章错误处理和Go,并且不太明白为什么&errorString{text}返回类型实际上必须返回指针()error?
我的理解是error一个接口,并errorString实现了接口,因此,返回errorString也没关系(但事实并非如此).
// New returns an error that formats as the given text.
func New(text string) error {
return &errorString{text}
}
Run Code Online (Sandbox Code Playgroud)
errorString实现
// errorString is a trivial implementation of error.
type errorString struct {
s string
}
func (e *errorString) Error() string {
return e.s
}
Run Code Online (Sandbox Code Playgroud)
因为error接口for errorString是为指针(func (e *errorString) Error())实现的,如果它实现如下,你将直接返回值:
func (e errorString) Error() string {
return e.s
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |