Go by Example: [16] Recursion

Recursion

Go언어는 재귀함수(Recursive Function)를 지원 합니다.
고전적인 예제인 팩토리얼값을 구하는 예제로 설명하겠습니다.

package main

import "fmt"

func fact(n int) int {         // [1]
    if n == 0 {
        return 1
    }
    return n * fact(n - 1)
}

func main() {
    
    fmt.Println(fact(7))
}
  1. fact()함수는 함수 내부에서 다시 자기 자신을 호출하고 있습니다.
    fact(0)함수를 호출할때까지 계속해서 자기자신을 재귀적으로 호출합니다.

실행하면 다음과 같습니다.

$ go run recursion.go 
5040