概述

闭包的概念参考 闭包 - 维基百科)

例子

自增序列号生成器

package mainimport "fmt"// 自增序列号生成器func incSeq() func() int {    i := 0    return func() int {        i++        return i    }}func main() {    next := incSeq()    fmt.Printf("初始值 = %d\n", next())    for i := 1; i <= 5; i++ {        fmt.Printf("第 %d 次迭代后, 值 = %d\n", i, next())    }}// $ go run main.go// 输入如下 /**  初始值 = 1  第 1 次迭代后, 值 = 2  第 2 次迭代后, 值 = 3  第 3 次迭代后, 值 = 4  第 4 次迭代后, 值 = 5  第 5 次迭代后, 值 = 6*/

分割我