你真的了解 defer 吗?

目录

[Go]你真的了解 defer 吗?

为什么需要 defer

defer 语法及语义

defer 使用要点

defer 函数延迟调用

defer 函数参数即时求值

反序调用


你真的了解 defer 吗?_第1张图片

[Go]你真的了解 defer 吗?

深入理解 defer 分上下两篇文章,本文为上篇,主要介绍如下内容:

  • 为什么需要 defer;

  • defer 语法及语义;

  • defer 使用要点;

  • defer 语句中的函数到底是在 return 语句之后被调用还是 return 语句之前被调用。

为什么需要 defer

先来看一段没有使用 defer 的代码:

func f() {
    r := getResource()  //0,获取资源
    ......
    if ... {
        r.release()  

你可能感兴趣的:(Go,语言进阶之路,defer,golang,return,闭包)