首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Go程序例子(15):递归

Go程序例子(15):递归

原创
作者头像
用户11078756
发布2024-12-12 09:50:49
发布2024-12-12 09:50:49
2160
举报
文章被收录于专栏:go程序例子go程序例子

Go 支持递归函数。这是一个经典的示例。

代码语言:go
复制
package main

import "fmt"
// 这个函数通过递归调用自身,直到达到阶乘的基本情况 fact(0)。
func fact(n int) int {
    if n == 0 {
        return 1
    }
    return n * fact(n-1)
}

func main() {
    fmt.Println(fact(7))
	// 匿名函数也可以是递归的,但这需要在定义函数之前,使用 var 关键字显式声明一个变量来存储该函数。
    var fib func(n int) int

    fib = func(n int) int {
        if n < 2 {
            return n
        }
	// 由于 fib 函数之前已在 main 函数中声明过,Go 语言知道在这里要调用哪个 fib 函数。
        return fib(n-1) + fib(n-2)
    }

    fmt.Println(fib(7))
}

运行结果:

代码语言:javascript
复制
$ go run recursion.go 
5040
13

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档