error接口:
error只是一个接口类型
type error interface {
Error() string
}
构造error最简单的方法是调用errors.New,它会返回一个包含指定错误消息的新error实例:
err := errors.New("EOF")
但更常用是使用fmt.Errorf,它还额外提供字符串格式化功能。
errors包:
package errors
func New(text string) error { return &errorString{text} }
type errorString struct { s string }
func (e *errorString) Error() string { return e.s } //满足error接口的是*errorString指针
其他包中也有其他类型满足error接口,例如syscall包中的Errno类型。