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...