defer的执行顺序

本文阅读 1 分钟
首页 golang 正文

题目来源:腾讯

频次:高频

答案:树枝

  1. 一个函数中多个defer的执行顺序

    defer的作用就是把defer关键字之后的函数压入一个栈中延迟执行,多个defer的执行顺序是后进先出

    package main
    
    import "fmt"
    
    func main() {
        defer fmt.Println("1")
        defer fmt.Println("2")
        defer fmt.Println("3")
    }
    // 输出
    // F:vmware_kuberneteskubernetes_kind_pro    >go run main.go
    // 3
    // 2
    // 1
  2. defer、return、返回值的执行返回顺序

    return最先执行,先将结果写入返回值中(即赋值);接着defer开始执行一些收尾工作;最后函数携带当前返回值退出(即返回值)。

本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论