golang函数的递归,与其他语言没有什么区别。
通俗的讲,递归就是自己调用自己,直到达到特定的条件,结束调用。
递归不能形成死循环,否则程序会报错。
所以必须有跳出条件
示例:
package mainimport "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
