想到js的闭包, 试试golang的:
写法和js差不多, 不同的是golang是强类型的
func main() { counter := func() (func() int) { var i = 0 // 把i包起来, 保存了所返回的函数的上下文, i相当于私有变量了 return func() int { i++ return i } }() println(counter()) // 1 println(counter()) // 2 println(counter()) // 3 }