go語言defer的使用

2021-08-14 21:11:20 字數 561 閱讀 4134

go語言的defer(延遲執行)語句,是在函式結束前執行,而如果在函式中有多個defer語句時,會像乙個堆疊一樣,先進後出,後進先出。defer語句在進行一些開啟資源的操作時,遇到錯誤需要提前返回,在返回前你需要關閉相應的資源,不然很容易造成資源洩露等問題上很試用。

舉個defer語句簡單的使用如下:

package 

main

import

"fmt"

func

funca()

func

funcb()

//當funcc執行完,也就是輸出test funcc時,才會去呼叫funca和funcb,而且是先呼叫funcb

func

funcc()

func

main()

fmt.println("test main func")

}所以最終輸出的結果是

test funcc

test funcb

test funca

test main func54

3210

Go 語言 函式defer的使用

在函式中,經常需要建立資源 比如 資料庫的連線 檔案 鎖等 為了在函式執行完畢後,及時釋放資源,go 提供了defer 延時機制 舉個栗子 package main import fmt 當執行到defer 時,暫時不會執行,會將defer 後面的語句 壓入到 棧中 特點 先進後出 當函式執行完畢後...

Go語言中defer的使用

func print a int func add a,b int int fmt.println add 4,3 上面這段 defer語句輸出的是4,add返回的值是7。defer可以用於檔案的開啟和關閉,鎖的開啟和關閉。package ioutil func readfile filename ...

go語言 defer使用方法

一.defer關鍵字 延遲呼叫 defer關鍵字的作用主要在於延遲呼叫,在main方法即將結束的那一剎那,呼叫defer後面變數,多個defer關鍵字,會 進行先進後出的規則 二.多個defer執行的順序 如果乙個函式中有多個defer語句,他們會以先進後出的順序進行執行,哪個某個函式或者延遲發生了...