[Go] golang的error接口


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)
}

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM