递归 ,就是在运行过程中 调用自己。
Go 语言支持递归。但在使用递归时需要设置退出条件,否则递归将陷入无线循环。
递归对于解决数学上的问题,非常有意义。如计算阶乘,生成斐波那契数列等。
语法格式如下:
func recursion () {
recursion()
}
funtion main(){
recursion()
}
示例
package main
import "fmt"
func main() {
var i int = 15
var index int =1
fmt.Println(factorial(uint64(i),&index))
}
func factorial(n uint64,index *int)( result uint64) {
*index++
fmt.Println(*index)
if ( n > 0 ){
result = n * factorial(n-1,index)
return result
}
return 1
}