Go 教程

浏览10107
更新时间2025-08-13

递归函数

Go 支持递归函数。如果函数调用自身并且能达到一个停止条件,那么这个函数就是递归的。

在下面的例子中,testcount() 是一个调用自身的函数。我们使用 x 变量作为数据,每次递归时都会增加 1x + 1)。当 x 变量等于 11x == 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

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

相关视频

更多

免费

php8,我来也
初级php8,我来也

33.5万次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

39.2万次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

30.3万次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

64.4万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

40.9万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

76万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

63.7万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.1万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

35.8万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

131.8万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载