go錯誤處理
go 語言通過內建的錯誤介面提供了非常簡單的錯誤處理機制。
error型別是乙個介面型別,這是它的定義:
type error inte***ce我們可以在編碼中通過實現 error 介面型別來生成錯誤資訊。
函式通常在最後的返回值中返回錯誤資訊。使用errors.new 可返回乙個錯誤資訊:
func sqrt(f float64) (float64, error)在下面的例子中,我們在呼叫 sqrt 的時候傳遞的乙個負數,然後就得到了non-nil 的 error 物件,將此物件與 nil 比較,結果為 true,所以 fmt.println (fmt包在處理error時會呼叫error方法)被呼叫,以輸出錯誤,請看下面呼叫的示例**:// 其他邏輯實現
}
result, err:= sqrt(-1)具體例項如下:if err != nil
package main執行結果:import "fmt"
// 定義乙個 divideerror 結構
type divideerror struct
// 為divideerror繫結error方法,實現 error 介面
func (de *divideerror)error() string
// 定義 int 型別除法運算的函式
func divide(vardividee int, vardivider int) (result int, errormessage string)
errormessage = ddata.error() //呼叫方法得到對應錯誤資訊
return
} else
}func main()
// 當除數為0的時候會返回錯誤資訊
if _, errormessage := divide(100, 0); errormessage != ""
}
100 / 6 = 16errormessage is :
cannot procceed, the divider is zero.
dividee: 100
divider: 0
go語言基礎 錯誤 error
表示程式中的錯誤。用法 用於函式多返回值。func 函式名 引數列表 返回值,error xx,err 函式名 if err nil,函式執行無誤,結果有效,可以繼續向下執行 else err nil,有錯誤產生了,函式執行過程中有問題。error的型別 inte ce,系統的內建介面型別 type...
GO語言基礎之method
方法 method 1.go 中雖沒有 class,但依舊有 method 2.通過顯示說明 receiver 來實現與某個型別的組合 3.只能為同乙個包中的型別定義方法 4.receiver 可以是型別的值或者指標 5.不存在方法過載 6.可以使用值或指標來呼叫方法,編譯器會自動完成轉換 7.從某...
go語言基礎之range
在go語言中,遍歷資料或切片時可以用range,range會產生兩個值,分別是資料的索引與值 package main import fmt func main for v range x 這種寫法非常不好 雖然沒有報錯 因為for range的過程中,產生了index 索引 與value兩個值,但...