func main() {
for i := 0; i < 10; i++ {
defer func(n int) {
fmt.Printf("%d", n)
}(func() int {
n := fibonacci(i)
fmt.Printf("%d", n)
return n
}())
}
}无所谓,参数部分是立即执行的。立即执行就会继承作用域内的参数,是否传i都行。
第二个func是 defer 携带的表达式语句的参数,defer运行时对第二个func先求值