Go語言的特性

2021-07-16 01:51:56 字數 1018 閱讀 1206

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

編譯器gc編譯速度很快,但是編譯後的程式不能使用gcc鏈結,但是gccgo相反

$goroot 表示 go 在你的電腦上的安裝位置,它的值一般都是 $home/go,當然,你也可以安裝在別的地方

$goarch 表示目標機器的處理器架構,它的值可以是 386、amd64 或 arm。

$goos 表示目標機器的作業系統,它的值可以是 darwin、freebsd、linux 或 windows。

$gobin 表示編譯器和鏈結器的安裝位置,預設是 $goroot/bin,如果你使用的是 go 1.0.3 及以後的版本,一般情況下你可以將它的值設定為空,go 將會使用前面提到的預設值。

go 編譯器支援交叉編譯,也就是說你可以在一台機器上構建執行在具有不同作業系統和處理器架構上執行的應用程式,也就是說編寫源**的機器可以和目標機器有完全不同的特性(作業系統與處理器架構)。

為了區分本地機器和目標機器,你可以使用 $gohostos 和 $gohostarch 設定目標機器的引數,這兩個變數只有在進行交叉編譯的時候才會用到,如果你不進行顯示設定,他們的值會和本地機器($goos 和 $goarch)一樣。

$gopath 預設採用和 $goroot 一樣的值,但從 go 1.1 版本開始,你必須修改為其它路徑。它可以包含多個包含 go 語言原始碼檔案、包檔案和可執行檔案的路徑,而這些路徑下又必須分別包含三個規定的目錄:src、pkg 和 bin,這三個目錄分別用於存放原始碼檔案、包檔案和可執行檔案。

$goarm 專門針對基於 arm 架構的處理器,它的值可以是 5 或 6,預設為 6。

$gomaxprocs 用於設定應用程式可使用的處理器個數與核數。

五 go語言特性 go語言筆記

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

Go語言的函式特性

go語言的每乙個函式宣告都包含乙個函式名 乙個形參列表 乙個可選的返回列表以及函式體 func name parameter list result list 上述函式宣告的語法通式中,若函式僅有乙個或沒有返回值,返回列表的圓括號可以省略。函式的型別稱作函式簽名。當兩個函式擁有相同的形參列表和返回列...

GO語言 陣列特性

go語言 陣列特性 與其他語言不同,go語言陣列預設是按值傳遞,也就是說,陣列變數實際上儲存的是整個陣列而不像其他語言那樣儲存的是指向陣列開頭的指標。因此賦值的時候,如果需要避免額外的記憶體開銷 特別是陣列比較大的情況下 一定要使用取位址符去賦值,而不要直接的使用賦值符號賦值!test string...