导航
×
   ❮   
HTML CSS JavaScript PHP Go ECMS

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

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


freew3c.com 中文网是独立运营的中文开发者学习平台,与 freew3c.com 无关联。提供的内容仅用于学习和测试,不保证内容的正确性。


Copyright @2020-2026 京ICP备888888号-8