golang中的defer
生活随笔
收集整理的這篇文章主要介紹了
golang中的defer
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
defer在go語言中可以發(fā)揮很大的作用,在函數(shù)中定義的defer會(huì)放在return前執(zhí)行,defer后面可以放一些資源關(guān)閉的操作,以防忘記關(guān)閉資源而浪費(fèi)空間。
package mainimport "fmt"// 傳指針到匿名函數(shù)中 func f() (x int){defer func(x *int){(*x)++}(&x)return 1 }func main(){res := f()fmt.Println(res) }這里打印出的res為2,defer的執(zhí)行步驟是在返回值賦值和再真正返回RET之間,所以這里它真正改變的是int類型的指針,所以真正的x在返回RET之前,返回值x賦值之后又進(jìn)行了一次改變,所以返回的值進(jìn)行了加一的操作,變?yōu)榱?
總結(jié)
以上是生活随笔為你收集整理的golang中的defer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取当天0点数据scala实现
- 下一篇: scala连接postgre数据库