golang学习之defer关键字

47 阅读1分钟

defer关键字

defer关键字后面可跟一行命令或函数,该命令或函数将在函数生命周期结束后执行

知识点1:defer的执行顺序

屏幕截图 2024-07-01 004721.png

屏幕截图 2024-07-01 004742.png

如图,main函数执行结束后才会执行defer关键字后面的命令

若有多个defer关键字,defer关键字的命令将被压入栈中,按照出栈顺序先后执行defer关键字

屏幕截图 2024-07-01 005146.png

屏幕截图 2024-07-01 005155.png

如图,三个defer关键字语句是倒序执行的

知识点2:defer和return谁先执行谁后执行

按照原理,defer关键字是在函数生命周期结束后执行的,所以return会比defer先执行