美文网首页
GO语言-函数defer

GO语言-函数defer

作者: 平凡之路001 | 来源:发表于2019-12-03 17:26 被阅读0次

package main

import "fmt"

func calc(index string, a, b int) int {

    ret := a + b

    fmt.Println(index, a, b, ret)

    return ret

}

func main() {

    a := 1

    b := 2

    defer calc("1", a, calc("10", a, b))

    a = 0

    defer calc("2", a, calc("20", a, b))

    b = 1

}

// 程序运行步骤分析

// 1. a=1

// 2. b=2

// 3. defer calc("1", 1, calc("10", 1, 2))

// 4. calc("10", 1, 2) // 输出-1:  10,1,2,3

// 5. a=0

// 6. defer calc("2", 0, calc("20", 0, 2))

// 7. calc("20", 0, 2) //输出-2:   20,0,2,2

// 8. b=1

// 9. defer calc("2", 0,2) //输出-3:  2,0,2,2

// 10.defer calc("1", 1,3) //输出-4:  1,1,3,4

相关文章

  • defer

    Go 语言的 defer 会在当前函数或者方法(不是main)返回之前执行函数。由于 defer 的延迟特性,de...

  • Go函数-延迟调用(三)

    在go语言里,defer可是实现延迟函数调用。语句defer向当前函数注册稍后执行的函数调用。这些调用被称做延迟调...

  • Golang学习笔记-defer关键字学习

    defer学习 很多现代的变成语言中都会有defer关键字,Go语言的defer会在当前函数或是方法返回之前执行传...

  • GO语言-函数defer

    packagemainimport"fmt"funccalc(indexstring,a,bint)int{ret...

  • Go语言defer关键字

    Go语言defer关键字 defer关键字用于延缓函数的执行 只需要在调用普通函数或方法前加上关键字defer,就...

  • go语言的defer语句

    go语言defer语句的用法 defer的语法 defer后面必须是函数调用语句,不能是其他语句,否则编译器会出错...

  • 用匿名函数巧妙验证go语言中defer执行顺序

    defer的执行顺序 在go语言当中,defer通常是在函数当中使用。当函数执行到最后一行代码(包括return)...

  • Go语言 defer

    参考文章:深入理解Go语言 defer用于资源的释放,会在函数返回之前进行调用 defer关键字的实现跟go关键字...

  • go/defer

    defer使用 defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通...

  • 一文了解defer操作

    什么是defer? defer是go语言提供的一种用于注册延迟调用的机制,让函数或语句可以在当前函数执行完毕后(包...

网友评论

      本文标题:GO语言-函数defer

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