17_defer(延迟调用)关键字的使用

Posted zhaopp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17_defer(延迟调用)关键字的使用相关的知识,希望对你有一定的参考价值。

1、defer是延迟调用关键字,只能在函数内部使用
2、总是在main函数结束前调用(和init用法相对)
3、如果有多个defer 遵循先进后出的原则
4、和匿名函数同时使用时,如果匿名函数带有参数,则先把参数传进去,最后调用


例如:

package main

import "fmt"
func Test() 
	defer fmt.Println("111111")             //最后执行
	defer fmt.Println("222222")             //其次
	defer fmt.Priiota_test.gontln("333333") //最先执行这个



func main() 

	a := 1
	b := 2
	defer fmt.Println(a, b) //1,2 先把参数传进去,然后执行后面的程序,最后在main函数结束前执行这个
	defer func(a, b int) 
		fmt.Printf("a1=%d,b1=%d\\n", a, b)
	(a, b) //先把参数传进去,最后按顺序执行defer语句
	a = 4
	b = 6
	fmt.Println("a=", a, "b=", b)
	Test()


运行结果:

                      技术图片

 

以上是关于17_defer(延迟调用)关键字的使用的主要内容,如果未能解决你的问题,请参考以下文章

Swift Defer 延迟调用

Golang Go语言中的 defer 怎么使用?

Go_defer

golang 初体验 - 令人惊叹的语法 - defer.1

Go语言defer(延迟执行语句)

defer语句