golang 闭包自动捕获外部变量的引用
闭包自动捕获外部变量的引用,即使外部函数已返回
func createCounter() func() int {
count := 0 // 外部变量
return func() int {
count++ // 直接修改外部变量
return count
}
}
func main() {
counter := createCounter()
fmt.Println(counter()) // 输出:1
fmt.Println(counter()) // 输出:2(count 被持久修改)
}
浙公网安备 33010602011771号