// code_006_defer_usage project main.go package main import ( "fmt" ) func test(x int) { fmt.Println(100 / x) } func main() { //关键字 defer ⽤于延迟一个函数或者方法(或者当前所创建的匿名函数)的执行。 //注意,defer语句只能出现在函数或方法的内部。 fmt.Println("this is a test") defer fmt.Println("this is a defer") //defer语句经常被用于处理成对的操作,如打开、关闭、连接、断开连接、加锁、释放锁。 //通过defer机制,不论函数逻辑多复杂,都能保证在任何执行路径下,资源被释放。 //释放资源的defer应该直接跟在请求资源的语句后。 //如果一个函数中有多个defer语句,它们会以LIFO(后进先出)的顺序执行。 //哪怕函数或某个延迟调用发生错误,这些调用依旧会被执⾏。 defer fmt.Println("aaaa") defer fmt.Println("bbbb") defer test(0) defer fmt.Println("ccc") a, b := 10, 20 defer func(x int) { fmt.Println("\ndefer:", x, b) //b闭包引用 }(a) a += 10 b += 100 fmt.Printf("a= %d, b= %d", a, b) }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- RabbitMQ延迟消息的延迟极限是多少?
- RabbitMQ延迟消息的延迟极限是多少?
- 延迟静态绑定——static
- RabbitMQ实现延迟队列
- mybatis 延迟加载
- mybatis教程--延迟加载详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
指数型组织
萨利姆•伊斯梅尔 (Salim Ismail)、迈克尔•马隆 (Michael S. Malone)、尤里•范吉斯特 (Yuri van Geest) / 苏健 / 浙江人民出版社 / 2015-8-1 / CNY 69.90
《指数型组织》是一本指数级时代企业行动手册。作者奇点大学创始执行理事萨利姆·伊斯梅尔归纳了指数型组织的11个强大属性,并提出了建立指数型组织的12个关键步骤。通过自己创建的一套“指数商”测试题,伊斯梅尔还测量出了指数型组织世界100强。 为什么小米、海尔和阿里巴巴能进入“指数型组织世界100强”名单?“独角兽”Uber、Airbnb、谷歌等知名企业是如何指数化自己的组织的? 未......一起来看看 《指数型组织》 这本书的介绍吧!