Go 中的 函数闭包

首页 / Golang入门教程 / Go 中的 函数闭包

Go编程语言支持可以充当函数闭包的匿名函数,当我们要内联定义函数而不传递任何名称时,将使用匿名函数。

在我们的示例中,我们创建了一个函数getSequence(),该函数返回另一个函数,此函数的目的是关闭上层函数的变量i形成闭包。如-

链接:https://www.learnfk.comhttps://www.learnfk.com/go/go-function-closures.html

来源:LearnFk无涯教程网

package main

import "fmt"

func getSequence() func() int {
   i:=0
   return func() int {
      i+=1
      return i  
   }
}

func main(){
   /* nextNumber 现在是 i 为 0 的函数 */
   nextNumber := getSequence()  

   /* 调用 nextNumber 将 i 增加 1 并返回相同的值 */
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())
   fmt.Println(nextNumber())
   
   /* 创建一个新序列并查看结果,i 再次为 0*/
   nextNumber1 := getSequence()  
   fmt.Println(nextNumber1())
   fmt.Println(nextNumber1())
}

编译并执行上述代码后,将产生以下输出-

无涯教程网

1
2
3
1
2

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

趣谈Linux操作系统 -〔刘超〕

后端技术面试 38 讲 -〔李智慧〕

Electron开发实战 -〔邓耀龙〕

后端存储实战课 -〔李玥〕

用户体验设计实战课 -〔相辉〕

Go 语言项目开发实战 -〔孔令飞〕

程序员的测试课 -〔郑晔〕

超级访谈:对话玉伯 -〔玉伯〕

AI大模型企业应用实战 -〔蔡超〕

好记忆不如烂笔头。留下您的足迹吧 :)