递归,就是在运行的过程中调用自己。
既然说到递归,那我就得先说一下在JAVA语言中的递归,
递归的基本思想就是
“自己调用自己”,一个使用递归技术的方法会直接或间接的调用自己
递归构造包括两个部分:
定义递归头。什么时候不调用自身方法,如果没有头,将陷入死循环
递归体。什么时候需要调用自身方法,递归一般都是从案例中提现出来的,我们可以实现一下看看

递归算法代码显得很简洁,但递归算法解题的运行效率较低。所以不提倡用递归设计程序。
在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等,所以一般不提倡用递归算法设计程序。
在做递归算法的时候,一定把握出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口就是一个条件,当满足了这个条件的时候我们就不再递归了。
递归算法会很容易造成内存占用过大的情况,慎用!
下面我们会所一下这个Go语言中的递归算法吧。
语法格式:
func recursion() {
recursion() /* 函数调用自身 */
}
func main() {
recursion()
}
Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。
递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。
我们用Go语言实现阶乘试试
阶乘的结果
斐波那契数列
Go 语言的递归函数实现斐波那契数列:
实例结果如下
以上就是Go语言递归函数的使用