bwangel23
12/29/2016 - 5:06 AM

Go 的疑惑

Go 的疑惑

package main

import (
	"fmt"
)

func main() {
	for i := uint64(0); i < uint64(30); i++ {
		fmt.Printf("factorial(%d): %d\n", i, factorial(i))
	}
}

func factorial(n uint64) (fac uint64) {
	fac = 1
  // 这里条件如果改成 n != 1 就会出现栈溢出错误	
  if n >= 1 {
		fac = factorial(n-1) * n
		return
	}

	return
}