go语言中defer用法 defer在英语中的含义为“延迟推迟”defer函数也顾名思义调用的顺序延迟到了后面func main(){ var name name defer fmt.Println(1) defer fmt.Println(2) fmt.Println(3) fmt.Println(4) fmt.Println(5) fmt.Println(name) }这里可以看出来没有defer是自上而下运行的有defer变成自上而下运行了例如1,2的顺序是自上而下的但是正常的3,4,5name还是自上而下运行func main() { var a,b10,20 defer func(a,b int) {fmt.Println(defer,a,b)}(a,b) a100 b200 fmt.Println(a,b) }defer延迟了函数的执行虽然立即调用了匿名函数但是该匿名函数不会执行等整个main函数结束之前再去调用执行匿名函数但是虽然没有立即调用执行匿名函数但是已经完成了参数的传递