与其他编程语言的差异
1.没有异常机制
2.error类型实现 error接口
Type error interface{
Error() String
}
4.可以通过errors.New() 快速创建错误实例
最佳实践: 及早失败,避免嵌套,直接上代码:
package ch14 import ( "errors" "testing" ) func Fib(n int )([]int,error) { if n<2||n>100 { return nil,errors.New("n should be in[2,100]") } fiblist:=[] int {1,1} for i:=2;i<n;i++{ fiblist=append(fiblist,fiblist[i-2]+fiblist[i-1]) } return fiblist,nil } func TestDemo( t *testing.T) { if v,error:= Fib(50);error!=nil{ t.Error(error) } else { t.Log(v) } }