2.1.1 递归函数
一、什么是递归函数
如果一个函数直接或简介调用这个函数本身,则该函数称为递归函数
实际开发中,递归函数可以解决数学问题:如阶乘、斐波那切数列等
构成递归函数还需要如下条件:
一个问题可以拆分成许多个子问题
拆分前的问题与拆分后的子问题除了数据规模不同,处理问题的思路是一样的
不能无限制的调用本身,子问题需要有退出递归状态的条件
注意:编写递归函数时,一定要有终止条件,否则就会无限调用下去,直到内存溢出
Go语言递归函数形式如下:
func FuncName(param paramType) { if param == condition { return } var param2 paramType2 = xxx FuncName(param2) }解释:
定义一个名为
FuncName()的函数,传递一个参数param函数中做判断,如果满足条件,直接
return,否则,继续调用函数本身
二、多个函数组成递归
Go语言中也可以使用相互调用的递归函数,多个函数之间相互调用形成闭环
因为Go语言编译器的特殊性,这些函数的声明顺序可以是任意的
举例:展示函数
Odd()和Even()之间的相互调用结果:
Last updated