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))
}
fact()
함수는 함수 내부에서 다시 자기 자신을 호출하고 있습니다.
fact(0)
함수를 호출할때까지 계속해서 자기자신을 재귀적으로 호출합니다.
실행하면 다음과 같습니다.
$ go run recursion.go
5040