golang闭包

闭包

关键点

  • 闭包也是类,运行闭包等同于创建对象【类是数据附带行为,闭包是行为附带数据】
  • 区分全局变量和局部变量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main

import "fmt"

func add() func() int {
sum := 1//全局变量
return func() int {
var a = 1//局部变量
sum += a
return sum
}
}

func main() {
pos, neg := add(), add()
for i := 0; i < 10; i++ {
fmt.Println(pos(), neg())
}

}