首页 > 区块链 > 区块链 > Golang闭包案例
package main
import (
"fmt"
)
//闭包的说明
//返回的是一个匿名函数,但是这个匿名函数引用到函数外的n,因此这个匿名函数就和n形成一个整体。
//构成了闭包
//可以这样理解,闭包是类,n是字段,函数是操作
//当我们反复的调用f函数时,因为n初始化一次,因此每调用一次就进行累加
func AddUpper() func(int) int {
var n int = 10
var str string = "Hello"
return func(x int) int {
n = n + x
str += string(36)
fmt.Println("str = ", str)
return n
}
}
func main() {
f := AddUpper()
fmt.Println(f(1))
fmt.Println(f(2))
fmt.Println(f(3))
}
[Running] go run "e:\go_project\main\main.go"
str = Hello$
11
str = Hello$$
13
str = Hello$$$
16
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10972173/viewspace-2978421/ ,如需转载,请注明出处,否则将追究法律责任。