go語言學習筆記 延遲呼叫關鍵字 defer

2021-09-25 01:47:39 字數 837 閱讀 1767

go語言中,defer語句可以使函式呼叫在函式結束前呼叫,defer關鍵字後面必須接函式呼叫語句,不然編譯器會報錯。

package main

import

"fmt"

func

main()

defer語句是用棧實現的,所以後面的defer語句先執行,並且,哪怕函式或某個延遲呼叫發生錯誤,這些呼叫依然會被執行。

demo

package main

import

"fmt"

// 如果乙個函式中有多個defer語句,他們會以lifo(後進先出)的順序執行。

// 哪怕函式或某個延遲呼叫發生錯誤,這些呼叫依然會被執行

func

test

(x int

)int

func

main()

package main

import

"fmt"

func

main()

(a, b)

defer

func()

()//代表呼叫此匿名函式

a =111 b =

222 fmt.

println

(a, b)

}

上述語句輸出:

111 222

111 222

10 20

c語言學習筆記 關鍵字

auto 定義變數為區域性變數,在函式中定義變數時預設為auto static 定義靜態區域性變數,使用static修飾的變數將被放置到資料段,為空鏈結 register 告知編譯器將盡可能變數存放到暫存器中,但該關鍵字只是乙個請求,並不能保證執行,linux中就有乙個變數被此關鍵字修飾 gd,被此...

Go語言學習筆記 二 變數 型別 關鍵字

日期 2014年7月19日 1 go 在語法上有著類 c 的感覺。如果你希望將兩個 或更多 語句放在一行書寫,它們 必須用分號分隔。一般情況下,你不需要分號。2 go 同其他語言不同的地方在於變數的型別在變數名的後面。例如 不是,int a,而是 a int。當定義了乙個變數,它預設賦值為其型別的 ...

C語言學習筆記 type關鍵字

typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 使用typedef定義新型別的方法 在傳統的變數宣告表示式裡用 新的 型別名替換變數名,然後把關鍵字typedef加在該語句的開頭即可。例 in...