golang中在函数中不能声明一个函数,但是可以在函数中声明匿名函数,统称闭包。
最开始接触golang时,对这一块不是特别理解,通过以下代码进行了解:
函数返回是个func()函数,返回的就是闭包函数,实际是针对引用了add函数中的变量i进行处理返回。
func add (i int) func() int { //声明函数add,变量i,及返回函数func()
return func () int {
i++
return i //引用add函数中的变量i进行自增返回
}
}