跳转至

16 golang 基础语法之递归函数

golang 递归函数

递归, 就是在运行过程中调用自己

格式

func recursion() {
  recursion()
}

func main() {
  recursion()
}

golang 支持递归, 在使用递归时, 开发者需要设置递归退出条件, 否则会陷入无限循环中

递归常用来解决数学问题, 比如计算阶乘, 生成斐波那契数列

阶乘

package main

import (
    "fmt"
)

func Factorial( n uint64) (result uint64) {
    if n > 0 {
        result = n * Factorial(n-1)
        return result
    }
    return 1
}

func main() {
    var i int = 10
    fmt.Printf("%d 的阶乘是%d \n", i, Factorial(uint64(i)))
}