發現golang很多開源的package都是使用error來定義錯誤,其實我自己更加的習慣利用返回的值進行判斷。 雖然這麼說,但golang的error定義還是有意思的,合理就返回nil,不合理就返回error的錯誤
下面說說golang的自定義錯誤的用法。在go裡定義錯誤的方式有這麼兩種,但都需要你的返回值是error型別的
1. 第一種方式是使用golang標準庫包errors 來定義錯誤。使用方法很是簡單,只需要 return errors.new(「string」) 。 這樣就是乙個最簡單的錯誤返回。
2. 第二種方式是借用struct結構體,建立乙個struct的error()方法,注意這個方法名是error,不然會出現下面的bug, 找不到error方法。
下面是乙個比較完整的error的使用方法。不僅有errors,還有struct error()方式
package main
import
("errors"
"fmt"
)type equalerror struct
//方法名字是error()
func
(e equalerror)
error()
string
func
equal
(n int)(
int,
error
)return n,
nil}
func
diyequal
(n int)(
int,
error
)// 會呼叫equalerror的error方法
}return n,
nil}
func
main()
else
//不適用erros,自定義錯誤方式.
if result, err :=
diyequal
(100
); err !=
nilelse
}
上面這段golang errors**執行後的結果是:
[
`go run er.go`
| done:
659.182168ms ]
錯誤: 超過了55
錯誤: 你現在是數字是 100
,還是超了55
r mysql包 R使用RMySQL包
經常在網上看到,很多人問如何在r中如何連線資料庫,尤其是如何使用rmysql包的問題。這些問題主要分為兩部分 一是 安裝不上 二是安裝上了 結果顯示是中文亂碼或者是問號。我當初也被這種問題困擾過一段時間,所以現在簡單總結一下 希望能夠幫助部分人解決問題。首先如何載入rmysql包 細分幾個步驟 1,...
DBMS RANDOM包的使用
7月18日 dbms random包的使用 1 function value return number select dbms random.value from dual 返回乙個大於或等於 0 且小於 1 的隨機數 2 function value low in number,high in ...
javascript閉包使用
之前看到一段 很是不能理解,然後就查詢資料並且找網路上得大牛請教,最後弄懂了這段 然後就拿出來總結一下。先來看一段 var arrtest for var i 0 i 3 i arrtest function function function console.log arrtest 0 tostr...