专栏首页章鱼的慢慢技术路Go指南练习_斐波纳契闭包

Go指南练习_斐波纳契闭包

源地址 https://tour.go-zh.org/moretypes/26

一、题目描述

让我们用函数做些好玩的事情。

实现一个 fibonacci 函数,它返回一个函数(闭包),该闭包返回一个斐波纳契数列 `(0, 1, 1, 2, 3, 5, ...)`。

二、题目分析

  • 要实现一个fibonacci函数;
  • 使该函数返回一个闭包;
  • 该闭包再返回一个斐波那契数列;
  • 闭包函数会引用函数体以外的值,可以对其修改。

三、Go代码

package main

import "fmt"

// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
    back1, back2:= 0, 1  // 预先设定好两个初始值

    return func() int {
        
        temp := back1 //记录(back1)的值      
        back1,back2 = back2,(back1 + back2) // 重新赋值(这个就是核心代码)        
        return temp //返回temp
    }    
}

func main() {
    f := fibonacci()  //返回一个闭包函数
    for i := 0; i < 10; i++ {  //打印斐波纳契数列
        fmt.Println(f())
    }
}

 运行结果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 牛客网_Go语言相关练习_判断&选择题(4)

    错误指的是可能出现问题的地方出现了问题,比如打开一个文件时失败,这种情况在人们的意料之中;而异常指的是不应该出现问题的地方出现了问题,比如引用了空指针,这种情况...

    Zoctopus
  • 游戏开发中的专业术语

    本文整理了网络/游戏/编程相关的专业术语,作为游戏开发中的辅助参考资料,后期如果遇到其他的术语还会更新。

    Zoctopus
  • 用数组解决问题(一)

    Zoctopus
  • python技能(1)-map函数

    yiduwangkai
  • python学习笔记 函数

    在python中,函数是一等对象。编程语言理论家把“一等对象”定义为满足以下条件的程序实体:

    py3study
  • Python中的函数式编程教程,学会用一行代码搞定

    在本文中,您将了解什么是函数范型,以及如何在Python中使用函数式编程。在Python中,函数式编程中的map和filter可以做与列表相同的事情。这打破了P...

    HuangWeiAI
  • 深度学习中【激活函数】存在的意义是什么?

    在深度学习网络中,我们经常可以看到对于某一个隐藏层节点的激活值计算一般分为两步,如下图:

    ShuYini
  • python的map()函数

    原文链接:https://www.runoob.com/python/python-func-map.html

    于小勇
  • CS224N 课程笔记之一:词向量(上)

    从处理的对象来看,NLP 与其他机器学习任务有很大区别:NLP 处理的对象是人类语言,而人类的语言是一种特定的用于传达意义的系统,并不由任何形式的物理表现产生,...

    口仆
  • 最新TensorFlow能碾压PyTorch?两大深度学习框架最全比拼

    TensorFlow是毫无争议的深度学习框架重量级冠军,而PyTorch是年轻的后起之秀,赢的了不少人的青睐。

    磐创AI

扫码关注云+社区

领取腾讯云代金券