登录
首页 >  Golang >  Go问答

go lang 中的函数,有人可以帮我分解一下吗?

来源:stackoverflow

时间:2024-02-12 14:18:23 403浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《go lang 中的函数,有人可以帮我分解一下吗?》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

当我偶然发现闭包时,我正在参观 golang,一件事导致了另一件事,我登陆了 https://www.calhoun.io/5-useful-ways-to-use-closures-in-go /

这里的代码片段难住了我

func makefibgen() func() int {
  f1 := 0
  f2 := 1
  return func() int {
    f2, f1 = (f1 + f2), f2
    return f1
  }
}

有人可以向我解释一下并解释到底发生了什么吗? 特别是这一行:

f2, f1 = (f1 + f2), f2

正确答案


f2 被赋值为 f1 + f2,同时 f1 被赋值为 f2(的原始值)。因此,如果 f1、f2 之前是 3、5,那么之后它们将是 5、8 (5, (3 + 5))。

这样,我们就得到了一个斐波那契生成器,因为每次调用内部函数时,都会返回前两个值的总和,并与前一个数字中较大的一个一起保存到下一次,从而构建下一个对加在一起时将产生下一个斐波那契数,依此类推。

终于介绍完啦!小伙伴们,这篇关于《go lang 中的函数,有人可以帮我分解一下吗?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>