go语言中,很多的函数,会通过函数的返回值进行返回,并不是像其他的编程语言一样,直接抛出异常。
go提供了一套非常简单的错误处理机制,error类型是一个接口类型,定义为:
type error interface {
Error() string
}
以下是一个斐波那契数列的代码demo:
func GetFeb(n int) ([]int, error) {
if n < 1 {
return nil, errors.New("N is cannot less than 1")
}
if n > 100 {
return nil, errors.New("N is cannot larger than 100")
}
if n == 1 {
return []int{1}, nil
}
if n == 2 {
return []int{1, 2}, nil
}
fib := []int{1, 2}
for i := 2; i < n; i++ {
fib = append(fib, fib[i-2]+fib[i-1])
}
return fib, nil
}
函数的处理逻辑比较简答,返回值是两个,一个是斐波那契数列的数组,一个就是对于的错误信息
这里需要留意的一点就是,大家的编程习惯,往往是把错误的信息,放到最后面的一个参数进行返回,正常的数据通过前面的参数进行返回