Go函數遞歸實例

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