首页 > 技术文章 > 理解go的闭包

liangweixiong 2018-10-22 09:59 原文

package main

import (
	"fmt"
	
	
)

func test(a int) {
	a++
	fmt.Println(a)
}

func test2() func() int{
	var a int
	return func() int {
		a++
		return a
	}
	
}

func main() {
	//a := 0
	//for i := 0; i < 10; i++ {
	//	test(a)
	//}
	
	//for i := 0; i < 10; i++ {
	//	fmt.Println(test2()())
	//}
	f := test2()
	for i := 0; i < 10; i++ {
		fmt.Println(f())
	}
	
	
	//var b int
	//f := func() int {
	//	b++
	//	return b
	//}
	//for i := 0; i<10; i++{
	//	fmt.Println(f())
	//}
}

  

推荐阅读