Recursion {.en}

递归 {.zh}

::: {.en} Go supports recursive functions. Here’s a classic factorial example. :::

::: {.zh}

Go 支持 递归。这是一个经典的阶乘示例。

:::

  1. package main
  2. import "fmt"

::: {.en} This fact function calls itself until it reaches the base case of fact(0). :::

::: {.zh}

fact 函数在达到 fact(0) 之前一致调用自身。

:::

  1. func fact(n int) int {
  2. if n == 0 {
  3. return 1
  4. }
  5. return n * fact(n-1)
  6. }
  7. func main() {
  8. fmt.Println(fact(7))
  9. }
  1. $ go run recursion.go
  2. 5040