Go闭包函数作用:
- 封装状态:闭包可以保存其外部作用域的状态,以便在以后使用。
- 支持高阶函数:闭包可以作为参数或返回值传递给其他函数,从而实现高阶函数。
Go闭包函数例子
package main
import "fmt"
func outerFunc() func(int) int {
x := 10
// 返回一个闭包函数
return func(y int) int {
// 引用了函数外部变量x,outerFunc函数返回了,也可以正常引用变量x
return x + y
}
}
func main() {
// 获得闭包函数
innerFunc := outerFunc()
// 调用闭包函数
result := innerFunc(20)
fmt.Println(result)
}