Defer 总结
虽说比较常用,但是遇到一道面试题还是比较懵逼,总结一下~ 面试题 下面代码输出什么? package main import "fmt" func calc(index string, a, b int) int { ret := a + b fmt.Println(index, a, b, ret) return ret } func main() { a := 1 b := 2 defer calc("1", a, calc("10", a, b)) a = 0 defer calc("2", a, calc("20", a, b)) b = 1 } /* output 10 1 2 3 20 0 2 2 2 0 2 2 1 1 3 4 */ 关键知识点 defer 是什么? defer 是 Go 语言提供的一种用于注册延迟调用的……