首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Go的推延(Defer)

2013-12-26 
Go的延迟(Defer)Go的延迟(Defer)是一个很有意思的特性,有点相当于Java try{}catch{}的finally,最后始终会

Go的延迟(Defer)
Go的延迟(Defer)是一个很有意思的特性,有点相当于Java try{}catch{}的finally,最后始终会被执行。也有区别:
1.defer的参数是在程序编译时已计算好了,而非函数执行时,如

i := 0defer fmt.Println(i)i = 1

输出:
0

而非1.
2.同时使用多个defer时遵循LIFO后进先出原则,如
i := 0defer fmt.Println(i)i = 1defer fmt.Println(i)i = 2defer fmt.Println(i)

输出:
210

热点排行