mirror of
https://gitee.com/shikong-sk/golang-study
synced 2025-05-22 18:08:10 +08:00
docs: Closure Function 闭包函数
This commit is contained in:
parent
710789c47c
commit
a6b328cd99
26
base/function/closure/main.go
Normal file
26
base/function/closure/main.go
Normal file
@ -0,0 +1,26 @@
|
||||
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)
|
||||
}
|
Loading…
Reference in New Issue
Block a user