// http://studygolang.com/articles/3756 package main import ( "fmt" ) func main() { c := func() int { fmt.Printf("func 1\n") return 555555 } fmt.Println(c) ww := c() fmt.Println(ww) func(arge int) { fmt.Printf("func %d\n",arge) }(2) a := func() int { fmt.Printf("func 3\n") return 666666 } d := a() fmt.Println(d) fmt.Println("------------------------") var j int = 5 k := func() func() { //返回函数指针 var i int = 10 return func() { fmt.Printf("i,j:%d,%d\n",i,j) } }() fmt.Println(k) k() j *= 2 k() }C:/Go/bin/go.exe build -i [F:/Go/src/gofunctest]
F:/Go/src/gofunctest/gofunctest.exe [F:/Go/src/gofunctest]
0x401330
func 1
555555
func 2
func 3
666666
------------------------
0x401500
i,j:10,5
i,10