面试真题

Go · 简单 · 百度

defer的应用场景与defer的执行顺序

简单 Go 🎤 百度
参考答案
结论:defer用于延迟执行,常用于资源释放、异常恢复和退出前操作;执行顺序为后进先出(LIFO)。应用场景:1.关闭文件句柄;2.解锁互斥锁;3.recover捕获panic;4.记录函数耗时。执行顺序:函数内多个defer按出现顺序压入栈,函数return前逆序弹出执行。示例:defer fmt.Print(1); defer fmt.Print(2) 输出21。原理:defer在所在函数return前执行,参数在defer语句时求值(值拷贝);defer在return赋值之后、函数真正返回前运行,可修改命名返回值。
题目整理自公开面经,答案由校招宝自研生成,仅供参考