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
亲自试一试 »

对于新开发人员来说,可能需要一些时间来弄清楚它是如何工作的,最好的方法是测试和修改它。