99% 的程序员都被 defer 坑过
这个小东西坏的很,一不留神就出错 一、 先来一个简单的例子热热身:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package main import ( "fmt" ) func main() { defer func() { fmt.Println("first") }() defer func() { fmt.Println("second") }() fmt.Println("done") } |
输出: donesecondfirst 这个比较简单,defer 语句的执行顺序是按调用 defer 语句的倒序执行。 二、 …