Go 递归函数
递归函数
Go 接受递归函数。如果一个函数调用自身并达到停止条件,则该函数为递归函数。
在以下示例中,testcount()
是一个调用自身的函数。我们使用 x
变量作为数据,每次递归时都会递增 1 (x + 1
)。当 x
变量等于 11 (x == 11
) 时,递归结束。
示例
package main
import ("fmt")
func testcount(x int) int {
if x == 11 {
return 0
}
fmt.Println(x)
return testcount(x + 1)
}
func main(){
testcount(1)
}
结果
1
2
3
4
5
6
7
8
9
10
递归是一个常见的数学和编程概念。它可以循环遍历数据以达到结果。
开发人员在使用递归函数时应谨慎,因为很容易编写一个永不终止的函数,或者一个使用过量内存或处理器资源的函数。但是,如果编写正确,递归可以成为一种非常高效且数学上优雅的编程方法。
在以下示例中,factorial_recursion()
是一个调用自身的函数。我们使用 x
变量作为数据,每次递归时都会递减 (-1)。当条件不大于 0(即为 0)时,递归结束。
示例
package main
import ("fmt")
func factorial_recursion(x float64) (y float64) {
if x > 0 {
y = x * factorial_recursion(x-1)
} else {
y = 1
}
return
}
func main() {
fmt.Println(factorial_recursion(4))
}
结果
24
对于新开发人员来说,可能需要一些时间才能弄清楚它是如何工作的,最好的方法是测试和修改它。