闭包

简单示例

package main

import (
	"fmt"
	"runtime"
)

func main() {
	print(runtime.GOOS) // 判断当前操作系统

	a := func(x, y int) int { return x + y }(3, 4)
	fmt.Printf("%d\n", a)

	var b = func() int {
		sum := 0
		for i := 0; i <= 1e6; i++ {
			sum += i
		}
		return sum
	}()

	fmt.Printf("%d\n", b)

	ff()
}

func ff() {
	for i := 0; i < 4; i++ {
		g := func(i int) { fmt.Printf("%d ", i) }
		g(i)
		fmt.Printf(" - g is of type %T and has value %v\n", g, g)
	}
}