美文网首页
4.5 延迟调用

4.5 延迟调用

作者: c84f3109853b | 来源:发表于2017-05-08 14:11 被阅读0次

常被用于资源释放、解除锁定以及错误处理等操作。

注意:

  • 延迟调用注册的是调用,必须提供执行所需参数(哪怕为空)。参数值在注册时被复制并缓存起来。如对状态敏感,可改用指针或闭包。
  • 延迟调用可修改当前函数命名返回值,但其自身返回值被抛弃。
  • 多个延迟注册按FILO次序执行。

return和panic语句都会终止当前函数流程,引发延迟调用。另外,return语句不是ret汇编指令,它会先更新返回值。

误用

千万记住,延迟调用在函数结束时才被执行。不合理的使用方式会浪费更多资源,甚至造成逻辑错误。

性能

相比直接用CALL汇编指令调用函数,延迟调用须花费更大代价。这其中包括注册、调用等操作,还有额外的缓存开销。尤其是那些性能要求高且压力大的算法,应避免使用延迟调用。

相关文章

网友评论

      本文标题:4.5 延迟调用

      本文链接:https://www.haomeiwen.com/subject/hebmtxtx.html