mirror of
https://gitee.com/shikong-sk/golang-study
synced 2025-02-23 23:42:15 +08:00
27 lines
386 B
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)
|
|
}
|