// 通过第二返回值的true/false来判断是否成功执行//1.没有异常机制//2.error类型实现了error接口typeerrorinterface{Error()string}//-.可以通过error.New来快速创建错误实例error.New("n must be in the range[0,1])
定义不同错误变量,方便判断错误类型
//区分错误类型 定义预制的错误var LessThanTwoError = errors.New("u should be less than 2")var MoreThanHunredsError = errors.New("u should be more than 100")funcGetFibonacci(n int)([]int,error){if n <2{returnnil,LessThanTwoError
}if n >100{returnnil,MoreThanHunredsError
}
fibList :=[]int{1,1}for i :=2;i < n; i++{
fibList =append(fibList,fibList[i-2]+fibList[i-1])}return fibList,nil}funcTestGetFibonacci(t *testing.T){//两段的if表达式对错误的检查if v,err :=GetFibonacci(-10);err !=nil{if err == LessThanTwoError{
fmt.Println("It is less.")}
t.Error(err)}else{
t.Log(v)}}