package main import "fmt" // 闭包函数 // 闭包函数中 包含了 其外部作用域 的 变量 // // 底层原理 // 1. 函数返回值 // 2. 变量查找顺序 func closure(x int) func(int) int { return func(i int) int { x += i return x } } func main() { f1 := closure(0) i := f1(1) fmt.Printf("i => %T %+v\n", i, i) i = f1(2) fmt.Printf("i => %T %+v\n", i, i) }