golang函数的递归,与其他语言没有什么区别。
通俗的讲,递归就是自己调用自己,直到达到特定的条件,结束调用。
递归不能形成死循环,否则程序会报错。
所以必须有跳出条件
示例:
package main
import "fmt"
func add_self(n int) int {
if n == 0 {
return 0
}else{
return n+add_self(n-1)
}
}
func main(){
fmt.Println(add_self(3))
}
//输出:6
//过程:3+add_self(2) == 3+2+add_self(1) == 3+2+1+add_self(0) == 3+2+1+0 == 6