1. 程式人生 > >Go語言-概況與安裝

Go語言-概況與安裝

機緣巧合,需要使用基於Go語言的開源專案,發現Go語言的開發效率和某些特性讓我的開發工作變得輕鬆不少,因此學習了一些Go語言的知識,在實際工作中也用Go寫了一點東西。
為節省時間,這裡摘要一些學習心得和實際體會,注重簡短易讀,方便快速瀏覽複習。
主要參考

1. Go語言概況

1.1 設計

  • 編譯快
  • 執行快
  • 開發簡單

高效需要靜態語言特性,開發簡單需要動態語言特性,所以Go是結合動靜兩種語言的特性來設計的。

1.2 適用方向

  • 網路通訊
  • 併發/並行程式設計

對於分散式和多核計算機特別適用。關鍵特性是gotoutinechannel
後端的Web伺服器,高效能分散式系統,遊戲服務端的海量並行,都可以從Go語言特性中受益。

其他的諸如文字處理,前端呈現,指令碼,都可以用Go搞一搞。

有垃圾回收和自動記憶體分配功能,所以實時性要求很高的軟體慎用。

1.3 安裝準備

1.3.1 Linux上安裝Go

偷個懶就直接用yum或者apt安裝了:

yum install golang
或者
apt-get install golang

1.3.2 環境變數

環境變數 說明
GOROOT go語言的安裝位置,比如 $HOME/go
GOARCH 386, amd64或者arm
GOOS darwin, freebsd, linux, windows
GOBIN 一般就是 $GOROOT\bin,可以留空
GOPATH 一般在哪個目錄下工作,就設定到哪裡,其中會src, pkg和bin這幾個固定的目錄,後續專案結構部分會有更細緻介紹
GOMAXPROCS 設定程式可以使用的處理器個數和核數

1.3.3 Windows上安裝Go

可以下載windows版本的Go語言安裝檔案,因為牆的存在,可以從Go語言中文網的下載頁面去下載。

按照預設安裝即可。
在命令列中試驗命令:

go version

檢視安裝是否成功,windows使用可以配合IDE或者直接文字編輯器+powershell,也是挺方便的。

1.4 其他概念

1.4.1 執行時

Go是有執行時的,跟JVM差不多,會做記憶體分配,垃圾回收,棧處理,goroutine,channel,slice,map和relfection等等工作。

執行時從Go 1.5開始是自舉的。有興趣可以看程式碼 $GOROOT/src/tuntime。

Go可執行檔案一般比較大,說明Go的執行時都嵌入到可執行檔案中了,這點非常好,雖然檔案大一點,但是整潔很多,只要一個檔案就可以跑了,不需要搞複雜的執行環境等等蛋疼的問題。

1.4.2 IDE和除錯

選一個編輯器,比如我用Notepad++,再加上一個LiteIDE就可以了。

除錯不完善,與其跟偵錯程式作鬥爭,不如多打點log就完事了。

print
println

fmt.Print
fmt.Println
fmt.Printf //%+v:包括欄位的例項資訊;%#v:包括欄位和限定型別名稱的例項資訊;%T 某個型別的完整說明

panic可以獲取棧跟蹤資訊。