在Go中,defer语句用于延迟函数的执行,通常用于在函数运行结束前执行一些清理工作。

一个函数中可以存在多个defer语句,当函数中存在多个defer语句时,它们的执行顺序是后进先出,即函数中最后一个defer语句会被最先执行,第一个defer语句则会最后才执行。

在Go中,defer语句中的“代码片段”会按它们在函数中出现的顺序先后被压入一个栈中,当函数执行结束时(return之前),这些被压入栈的“代码片段”会按照后进先出的顺序逐一被执行。

面试者与面试官