我一直盯着这段代码,无法弄清楚其行为的原因。package mainimport ( "fmt")var i intfunc example() int { defer func() { fmt.Println("defer") i = 1 }() fmt.Println("first") return i}func main() { fmt.Println(example()) fmt.Println(i)}起初,我的预期输出是:firstdefer11但是,正如您在操场上看到的那样,实际输出是:firstdefer01它是延迟的匿名函数行为吗?没有那么,为什么要打印0?
- 1 回答
- 0 关注
- 89 浏览
添加回答
举报
0/150
提交
取消