Go支持递归函数。 这里是一个经典的阶乘例子。
所有的示例代码,都放在
F:\worksp\golang
目录下。安装Go编程环境请参考:http://www.yiibai.com/go/go_environment.html
这个fact()
函数实际上是调用它自己本身,直到它达到fact(0)
时结果退出。
closures.go
的完整代码如下所示 -
package main
import "fmt"
// This `fact` function calls itself until it reaches the
// base case of `fact(0)`.
func fact(n int) int {
if n == 0 {
return 1
}
return n * fact(n-1)
}
func main() {
fmt.Println(fact(7))
}
执行上面代码,将得到以下输出结果 -
F:\worksp\golang>go run recursion.go
5040