- Go 教程
- Go - 主页
- Go - 概览
- Go - 环境设置
- Go - 程序结构
- Go - 基本语法
- Go - 数据类型
- Go - 变量
- Go - 常量
- Go - 运算符
- Go - 决策
- Go - 循环
- Go - 函数
- Go - 作用域规则
- Go - 字符串
- Go - 数组
- Go - 指针
- Go - 结构
- Go - 切片
- Go - 范围
- Go - 映射
- Go - 递归
- Go - 类型转换
- Go - 接口
- Go - 错误处理
- Go 有用资源
- Go - 问题和答案
- Go - 快速指南
- Go - 有用资源
- Go - 讨论
Go - 函数闭包
Go 编程语言支持匿名函数,可作为函数闭包使用。在我们要在不传递任何名称的情况下内联定义函数时,使用匿名函数。
在我们的示例中,我们创建了一个名为 getSequence() 的函数,该函数返回另一个函数。此函数的目的是封闭上层函数的一个变量 i 以形成一个闭包。例如, −
package main import "fmt" func getSequence() func() int { i:=0 return func() int { i+=1 return i } } func main(){ /* nextNumber is now a function with i as 0 */ nextNumber := getSequence() /* invoke nextNumber to increase i by 1 and return the same */ fmt.Println(nextNumber()) fmt.Println(nextNumber()) fmt.Println(nextNumber()) /* create a new sequence and see the result, i is 0 again*/ nextNumber1 := getSequence() fmt.Println(nextNumber1()) fmt.Println(nextNumber1()) }
当编译并执行上述代码时,它会产生以下结果 −
1 2 3 1 2
go_functions.htm
广告