最适合网络开发者的网站
Golang。初学者课程

尿素

Go 递归函数


递归函数

Go 接受递归函数。如果函数调用自身并达到停止条件,则该函数为递归函数。

在以下示例中, testcount() 是一个调用自身的函数。我们使用x 变量作为数据,以 1 为增量 (x + 1)每次我们递归时。当 x 变量等于 11 (x == 11).

例子

软件包 main
导入(“fmt”)

func testcount(x int)int {
如果 x == 11 {
返回 0
  }
fmt.Println(x)
返回测试计数(x + 1)
}

函数main(){
测试计数(1)
}

结果:

1
2
3
4
5
6
7
8
9
10
亲自尝试 »

递归是一种常见的数学和编程概念。它的好处是,你可以循环遍历数据来得到结果。

开发人员应谨慎使用递归函数,因为很容易写出永不终止的函数,或者使用过多内存或处理器能力的函数。但是,如果编写正确,递归可以是一种非常高效且数学上优雅的编程方法。

在以下示例中, factorial_recursion() 是一个调用自身的函数。我们使用x 变量作为数据,每次递归时都会减少(-1)。当条件不大于0(即为0时)时,递归结束。

例子

软件包 main
导入(“fmt”)

func factorial_recursion(x float64) (y float64) {
如果 x > 0 {
y = x * 阶乘递归(x-1)
} 别的 {
y = 1
  }
返回
}

函数main(){
fmt.Println(factorial_recursion(4))
}

结果:

24
亲自尝试 »

对于新开发人员来说,可能需要花费一些时间来弄清楚其具体工作原理,而找出答案的最佳方法是通过测试和修改它。