GO語言基礎 refer語句特性

2021-08-15 02:08:19 字數 813 閱讀 3457

go語言獨有的refer,後面可以跟乙個簡單語句或者跟乙個匿名函式。refer必須處於乙個方法或者函式中。

1. 簡單理解:refer一定會在乙個函式和方法全部執行完之後才會執行。可以理解成析構函式。

2.refer中的語句,在編譯過程中就會生成語句,並將語句插入乙個棧結構的佇列中,遵循先入後出的原則。因此,如果defer運用在迴圈中,一定要注意這一點。

3.- 如果採用匿名函式形式,可以忽略返回定義,因為defer不會處理返回值。如果傳入引數,defer中內容實際是在編譯期間就將引數替換為對應的值,並插入到佇列中,如下例,實際插入佇列的**為:

4.如果是採用不傳值的匿名函式形式,那其中的變數實際插入佇列的值是變數值,也就是fmt.println(k),當函式執行完畢後,再執行佇列中的語句,就是下面列印的結果。

GO語言基礎 switch語句特性

go語言的switch語句,除去和其他語言一致的基礎使用方法外,還有一些特性 1.每乙個case是可以直接省略break語句的,如果使用break和效果其他語言一致。2.可以使用fallthrough語句,是之匹配後直接使用下乙個case 塊的內容執行。注意 fallthrough語句必須為當前ca...

五 go語言特性 go語言筆記

defer 呼叫乙個被 defer 的函式時在函式剛要返回之前延遲執行,當函式無論怎樣返回,某資源必須釋放時,可用這種與眾不同 但有效的處理方式。傳統的例子包括解鎖互斥或關閉檔案。package main import log func main mydefer func mydefer func ...

Go語言的特性

目前有2個版本的編譯器 go原生編譯器gc和非原生編譯器gccgo編譯器,其中,gc 版本的編譯器已經被移植到 windows 平台上,並整合在主要發行版中,你也可以通過安裝 mingw 從而在 windows 平台下使用 gcc 編譯器。這兩個編譯器都是以單通道的形式工作。編譯器gc編譯速度很快,...