golang函数的递归,与其他语言没有什么区别。
    通俗的讲,递归就是自己调用自己,直到达到特定的条件,结束调用。

    递归不能形成死循环,否则程序会报错。
    所以必须有跳出条件

    示例:

    1. package main
    2. import "fmt"
    3. func add_self(n int) int {
    4. if n == 0 {
    5. return 0
    6. }else{
    7. return n+add_self(n-1)
    8. }
    9. }
    10. func main(){
    11. fmt.Println(add_self(3))
    12. }
    13. //输出:6
    14. //过程:3+add_self(2) == 3+2+add_self(1) == 3+2+1+add_self(0) == 3+2+1+0 == 6