互連網二十多年,已到十字路口。區塊鏈出現前的互連網被稱為古典互連網,而應用區塊鏈技術的互連網才進入了後互連網時代。作為一項新興的技術,區塊鏈無疑正處於風口浪尖之上,其發展前景於普通福士而言也終將是利好。但目前由於區塊鏈技術處於發展早期階段,存在技術成熟度等級、落地應用情境有限等問題,兄弟連教育建議使用者在選擇專業Go語言+區塊鏈培訓機構前應進行仔細考量與辨別。
golang中defer的執行
大家都知道golang的defer關鍵字,它可以在函數返回前執行一些操作,最常用的就是開啟一個資源(例如一個檔案、資料庫連接等)時就用defer延遲關閉改資源,以免引起記憶體流失。例如:
func do() (ok bool) {
file,_ := os.Open("c:\a.txt")
defer file.Close()
// doSomething
return ok
}
我們可以在官方的文檔中看到defer的執行順序是逆序的,也就是先進後出的順序:
for i := 0; i < 5; i++ {
defer fmt.Printf("%d ", i)
}
列印結果是:4,3,2,1,0
那麼再看這個例子:
func deferRet(x,y int) (z int){
defer z += 100
z = x + y
return z + 50 // 執行順序 z = z+50 -> (call defer)z = z+100 -> ret
}
func main() {
i := deferRet(1,1)
println(i) // print 152
}
高能預警,兄弟連教育區塊鏈直播課程8月持續火爆來襲!
原價1188元的12節區塊鏈進階課程,現僅需1元!
還可免費領取《Go語言基礎實戰項目開發》與《Go語言進階實戰項目開發》教材兩本!!限時限量!!先到先得!!
http://www.ydma.cn/open/course/24
關注兄弟連區塊鏈技術公眾號領取更多技術乾貨哦!!!