Go编程笔记(27)

package main

import (
	"fmt"
)

func main() {
	var fs = [4]func(){}

	for i := 0; i < 4; i++ {

		defer fmt.Println("defer i =", i)//defer :i 直接获取当前i的值
		defer func() { fmt.Println("defer_closure", i) }()//defer_closure :在defer函数中使用闭包
		fs[i] = func() {
			fmt.Println("closure i =", i)//仅  }
	}

	for _, f := range fs {

		f()
	}
}

输出结果:

closure i = 4
	closure i = 4
	closure i = 4
	closure i = 4
	defer_closure 4
	defer i = 3
	defer_closure 4
	defer i = 2
	defer_closure 4
	defer i = 1
	defer_closure 4
	defer i = 0



你可能感兴趣的:(Go编程笔记(27))