golang-study/base/function/closure/main.go

27 lines
386 B
Go

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)
}