Golang Learning Point
目錄
Golang Learning Point
開發 GO 的原因
- 簡潔
- 編譯快
- 編譯式語言
- 強型別
- 內建併行功能(Concurrent)
- 自動記憶體回收
適用 GO 的應用情景
- Web Development
- Command-line Interfaces(CLIs)
- Cloud & NetWork Services
相容性(Compatibility of GO)
GO 1.X 新版本保證會向下相容, 除了以下四點
- 安全性錯誤
- 規格錯誤
- 非預期的行為
- Bugs
常見 GO CLI 命令 執行程式
go run .(執行程式)go build .(建置專案)go build -v -o dist/main .(建置時顯示詳細記錄並指定輸出路徑)go clean(清空專案-刪除建置過程產生的檔案)go clean -i(連同已安裝的程式一併刪除)go clean -i -n(加上-n代表預覽會刪除的檔案)go clean -cache(清空建置快取檔案)go clean -cache -n(預覽清空建置快取檔案)go clean -modcache -x(清空模組快取同時顯示刪除命令)go clean -i -cache -modcache -x
常見 GO CLI 命令 執行測試
- 檔名規則: *_test.go
- 執行程式: 無法使用 ( 使用 go run . 會自動忽略 *_test.go 檔案 )
- 建置專案: 不用建置 ( 使用 go build 會自動忽略 *_test.go 檔案 )
- 你可以用
go test -c編譯測試程式(但不會執行測試) - 執行測試:
go test . - 清空快取:
go clean -testcache - 效能測試:
go test -bench=. -v
- 你可以用
常見 GO CLI 命令
go version(顯示 GO 執行環境版本)go env(顯示 GO 相關環境變數)- 其他被開發工具完美整合的命令
go get下載套件go fmt格式化程式碼go vet檢查原始碼品質go fix自動修復有問題的原始碼go doc從原始碼中取得 API 說明文件
Go 具有跨平台的特性
保留字(KeyWord)

自動加分號規則
- 識別字(identifier)
- 值(value)
integer,floating-point,imaginary,rune,stringtrue及false並不是值
- 以下四個關鍵字
breakcontinuereturnfallthrough
- 以下五個運算子與標點符號
)}]++--
命名常規 (Naming Convertion)

宣告變數 (Declaration)
var score int = 95
var是 keywordscore是變數名稱int是型別95是初始值
":=" 是 宣告變數並賦值
有 “*“在前的是指標
變數宣告有兩種方式
|
|
|
|
零值 (zero value)

自動型別推導 (Type Inference)
var name = "will"
簡略寫法
name := "will"
宣告常數 (僅可使用基礎型別)
-
數字:
byte,int,int8,int16,int32,int64,rune,uint,uint8,uint16,uint32,uint64,uintptr,float32,float64,complex64,complex128 -
布林:
bool -
字串:
string
未定義型別的常數 (untyped constant)

iota 遞增常數
|
|
相等於
|
|