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