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

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

时间:2019-08-31 17:03:34      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:height   width   bsp   图片   函数   fun   mamicode   UNC   运行   

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(延迟调用)关键字的使用

标签:height   width   bsp   图片   函数   fun   mamicode   UNC   运行   

原文地址:https://www.cnblogs.com/zhaopp/p/11439430.html

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