go之闭包

go中闭包概念就是一个函数和与其相关的引用环境组合的一个整体(实体)
package demo import ( "fmt" ) func AddDemo() func(int) int { var n int = 10 var str = "Hi" return func(x int) int { n = n + x str += string(36) fmt.Println("str=", str) return n } }

main.go中调用:
func main() { f := demo.AddDemo()// fmt.Println(f(1)) fmt.Println(f(2)) }

关键点:
AddDemo函数返回的是一个函数类型,所以,f := demo.AddDemo(),即f其实就是个函数引用,且是一个带一个int形参类型的,
所以,通过f来调用就必须传参。

posted @ 2020-11-16 16:46  iniestaoffcb  阅读(46)  评论(0)    收藏  举报