error接口
1.error就是一個接口interface
2.屬於errors包,該包有一個導出方法New,返回了errorString類型
3.errorString類型實現了error接口
4.之所以這樣是因為可以實現每個錯誤都是不同的實例
package main
import (
"errors"
"fmt"
"syscall"
)
/*
errors包中的代碼
package errors
//定義了接口
type error interface {
Error() string
}
//大寫字母開頭的方法,可以導出
//返回了errorStrig類型
func New(text string) error { return &errorString{text} }
//定義類型
type errorString struct { text string }
//類型實現接口的方法
func (e *errorString) Error() string { return e.text }
*/
func main() {
//返回false,這倆是不相同的實例
fmt.Println(errors.New("tsh error") == errors.New("tsh error"))
//fmt.Errorf進行了包裝
fmt.Println(fmt.Errorf("我是 %s 錯誤", "tsh"))
//類似實現了error接口
var err error = syscall.Errno(2)
fmt.Println(err.Error())
fmt.Println(err)
}

