func intSeq() func() int {
i := 0
return func() int {
a := i
a++
return a
}
}
func main() {
c := intSeq()
fmt.Println(c())
fmt.Println(c())
}
结果:
1
1
###########################################
func intSeq() func() int {
i := 0
return func() int {
i++
return i
}
}
func main() {
c := intSeq()
fmt.Println(c())
fmt.Println(c())
}
结果:
1
2
参考如上代码块:
闭包就是能够读取其他函数内部变量的函数。
闭包可以简单理解成定义在一个函数内部的函数。
可以让存在闭包的外层函数中的变量保存,会保存在内存中,造成消耗,因此闭包不可滥用。