首页 > 其他分享 >Go - A Tour of Go Exercise: Fibonacci closure

Go - A Tour of Go Exercise: Fibonacci closure

时间:2023-08-15 18:55:07浏览次数:42  
标签:closure f1 f0 int Tour fibonacci func Go

package main

import "fmt"

// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
    f0, f1 := 0, 1
    return func() int {
        f := f0
        f0, f1 = f1, f+f1

        return f
    }
}

func main() {
    f := fibonacci()
    for i := 0; i < 10; i++ {
        fmt.Println(f())
    }
}

 

标签:closure,f1,f0,int,Tour,fibonacci,func,Go
From: https://www.cnblogs.com/zhangzhihui/p/17632166.html

相关文章

  • 让 GPT-4 来修复 Golang “数据竞争”问题(续) - 每天5分钟玩转 GPT 编程系列(7)
    目录1.我以为2.阴魂不散的“数据竞争”问题3.老规矩,关门放GPT-43.1复现问题3.2让GPT-4写一个单元测试3.3修复Wait()中的逻辑漏洞4.总结1.我以为我以为GoPool这个项目会昙花一现,从此在GitHub上封尘。关于GoPool项目诞生的故事:《仅三天,我用GPT-4生成了性能......
  • django乐观锁、悲观锁商品秒杀简单demo
    悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读......
  • django中使用开启事务的三种方式
    django中使用开启事务的三种方式全局开启事务#settings.pyDATABASES={'default':{#全局开启事务,绑定的是http请求响应整个过程'ATOMIC_REQUESTS':True,}}#局部禁用fromdjango.dbimporttransaction#局......
  • Django templatetags使用
     webapp文件夹下创建templatetags文件夹templates文件夹下创建tags文件夹 templatetags文件夹下创建menu.pyfromdjango.templateimportLibraryregister=Library()@register.inclusion_tag("tags/nb_menu.html")defnb_menu(request):print(555,request.nv_login......
  • BanG Dream! It's MyGO!!!!! 短评
    BanGDream!It'sMyGO!!!!!小众佳作原创番3d略劝退“低气压美少女乐队番”,不得不说,这个“低气压”可太精髓了整个剧情笼罩在已死乐团CRYCHIC的阴云下,太窒息了Tomori:本作重女,要“组一辈子的乐队”,总是给我一种自闭、不善交流的印象,然而内心活动丰富,有时会把他人的过错归......
  • 如何高效地编写Go单元测试
    前言单元测试是代码质量的保证,良好的单元测试不仅能够提前暴露代码问题,还极大便利了代码重构,它能保证代码重构前后功能保持一致,让重构活动能够顺利的进行下去。Go对单元测试的支持已经相当友好了,原生的标准库就已经支持了单元测试。在Go中编写单元测试也非常简单,Go认为以_test.g......
  • MongoDB——Centos五步安装并设置服务自启(一)
     简介:官方地址:MongoDB:TheDeveloperDataPlatform|MongoDBMongoDB是一个开源的NoSQL数据库管理系统,它使用文档型数据模型来存储数据,以下是MongoDB的基本信息文档型数据存储:MongoDB使用BSON(BinaryJSON)格式存储数据,它是一种类似于JSON的二进制表示形式。每个文档是一个包含字......
  • 《高级程序员 面试攻略 》go抢占式调度 通俗拟人解释
    当我们谈论Go语言的抢占式调度时,可以使用一个通俗的拟人解释来描述它的工作原理。假设你正在组织一场音乐会,有许多音乐家需要在舞台上演奏乐器。你作为指挥,负责协调他们的演奏。每个音乐家都是一个Goroutine(Go协程),而你是调度器(Scheduler)。在开始音乐会之前,你将每个音乐家的......
  • 《高级程序员 面试攻略 》通俗拟人解释 swoole的协程 和 go的协程有什么区别
    Swoole的协程和Go的协程(Goroutine)都是用于实现轻量级并发的机制,但它们有一些区别。1.语言和环境:Swoole协程是在PHP语言中实现的,而Go协程是在Go语言中实现的。因此,它们在语言和运行时环境上存在差异。1.编程模型:Swoole协程使用的是“同步风格”的编程模型,类似于传统......
  • 学习go语言编程之网络编程
    Socket编程Golang语言标准库对Socket编程进行了抽象,无论使用什么协议建立什么形式的连接,都只需要调用net.Dial()即可。Dial()函数Dial()函数的原型如下:funcDial(network,addressstring)(Conn,error)参数含义如下:network:网络协议名字,如:tcp,udp等Dial()函数支持的网络......