码迷,mamicode.com
首页 > 其他好文 > 详细

defer语句

时间:2020-03-29 01:42:07      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:关闭   必须   多个   说明   执行   程序   defer   添加   文件   

defer语句

  1. 说明

    defer的词义:“延迟”,“推迟”

    在go语言中,使用defer关键词来延迟一个函数或方法的执行

  2. defer函数或方法:一个函数或方法被延迟执行了,需要等到所有函数或方法中的所有代码执行完后才会执行defer修饰的函数或方法。

  3. defer的用法

    1. 对象.close() 如数据库连接的关闭,文件的删除等

    2. 关于异常的处理,使用panic()和recover()

      panic函数用于引发恐慌,导致程序中断执行

      recover函数用于恢复程序的执行,recover函数语法上要求必须在defer中执行

    3. 如果多个defer函数:先延迟后执行,后延迟先执行

    4. defer函数传递参数的时候:defer函数调用时,就已经传递数据了参数数据了,只是暂时不执行函数中的代码而已。也就是defer函数实际执行时使用的参数是,代码执行到defer行时传入的参数值

  4. 堆栈的延迟

    当一个函数有多个延迟调用时,他们被添加到一个堆栈中,并在后进先出的顺序中执行。

  5. defer注意点

    1. 当外围函数中的语句正常执行完毕时,只有其中所有的延迟函数执行完毕,外围函数才会真正的结束执行。
    2. 当执行外围函数中的return语句时,只有其中所有的延迟函数都执行完毕后,外围函数才会真正返回
    3. 当外围函数中的代码引发运行恐慌时,只有其中所有的延迟函数执行完毕后,该运行时才会真正扩散至调用函数

defer语句

标签:关闭   必须   多个   说明   执行   程序   defer   添加   文件   

原文地址:https://www.cnblogs.com/henryno12/p/12590410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!