2021
06-19
06-19
聊聊golang中多个defer的执行顺序
golang中多个defer的执行顺序引用TureGo中的一个示例:packagemainimport"fmt"funcmain(){fmt.Println("counting")fori:=0;i<10;i++{deferfmt.Println(i)}fmt.Println("done")}程序执行结果为:countingdone9876543210从结果可以看出,defer的执行可以看做是一个FILO(FirstInLastOut)栈。在编写程序时,如果遇到下面的执行流程,id1先获取资源,然后id2通过id1获取,而id2的...
继续阅读 >