闭包就是一个函数和于其相关的引用环境组合的一个整体
累计器
package main
import (
"fmt"
)
func AddUpper() func(int) int {
n := 10
return func(x int) int {
n = n + x
return n
}
}
func main() {
f := AddUpper()
fmt.Printf("res=%d\n", f(1))
fmt.Printf("res=%d\n", f(2))
fmt.Printf("res=%d\n", f(3))
}
输出结果:
res=11
res=13
res=16
说明:
原文:https://www.cnblogs.com/adong2021/p/14757831.html