error介面1.error就是一個介面interface2.屬於errors包,該包有一個導出方法New,返回了errorString類型3.errorString類型實現了error介面4.之所以這樣是因為可以實現每個錯誤都是不同的實例 ...
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) }