1. 程式人生 > >Go語言實戰pdf

Go語言實戰pdf

第1章 關於Go語言的介紹 1
1.1 用Go解決現代程式設計難題 2
1.1.1 開發速度 2
1.1.2 併發 3
1.1.3 Go語言的型別系統 5
1.1.4 記憶體管理 7
1.2 你好,Go 7
1.3 小結 8
第2章 快速開始一個Go程式 9
2.1 程式架構 9
2.2 main包 11
2.3 search包 13
2.3.1 search.go 13
2.3.2 feed.go 21
2.3.3 match.go default.go 24
2.4 RSS匹配器 30
2.5 小結 36
第3章 打包和工具鏈 37
3.1 包 37
3.1.1 包名慣例 38
3.1.2 main包 38
3.2 匯入 39
3.2.1 遠端匯入 40
3.2.2 命名匯入 40
3.3 函式init 41
3.4 使用Go的工具 42
3.5 進一步介紹Go開發工具 44
3.5.1 go vet 44
3.5.2 Go程式碼格式化 45
3.5.3 Go語言的文件 45
3.6 與其他Go開發者合作 48
3.7 依賴管理 48
3.7.1 第三方依賴 49
3.7.2 對gb的介紹 50
3.8 小結 52
第4章 陣列、切片和對映 53
4.1 陣列的內部實現和基礎功能 53
4.1.1 內部實現 53
4.1.2 宣告和初始化 54
4.1.3 使用陣列 55
4.1.4 多維陣列 58
4.1.5 在函式間傳遞陣列 59
4.2 切片的內部實現和基礎功能 60
4.2.1 內部實現 60
4.2.2 建立和初始化 61
4.2.3 使用切片 63
4.2.4 多維切片 74
4.2.5 在函式間傳遞切片 75
4.3 對映的內部實現和基礎功能 76
4.3.1 內部實現 76
4.3.2 建立和初始化 78
4.3.3 使用對映 79
4.3.4 在函式間傳遞對映 81
4.4 小結 82
第5章 Go語言的型別系統 83
5.1 使用者定義的型別 83
5.2 方法 87
5.3 型別的本質 90
5.3.1 內建型別 91
5.3.2 引用型別 91
5.3.3 結構型別 93
5.4 介面 95
5.4.1 標準庫 96
5.4.2 實現 98
5.4.3 方法集 99
5.4.4 多型 103
5.5 嵌入型別 105
5.6 公開或未公開的識別符號 113
5.7 小結 121
第6章 併發 122
6.1 併發與並行 122
6.2 goroutine 125
6.3 競爭狀態 132
6.4 鎖住共享資源 135
6.4.1 原子函式 135
6.4.2 互斥鎖 138
6.5 通道 140
6.5.1 無緩衝的通道 141
6.5.2 有緩衝的通道 146
6.6 小結 149
第7章 併發模式 150
7.1 runner 150
7.2 pool 158
7.3 work 168
7.4 小結 174
第8章 標準庫 176
8.1 文件與原始碼 177
8.2 記錄日誌 178
8.2.1 log包 179
8.2.2 定製的日誌記錄器 182
8.2.3 結論 186
8.3 編碼 解碼 187
8.3.1 解碼JSON 187
8.3.2 編碼JSON 192
8.3.3 結論 193
8.4 輸入和輸出 193
8.4.1 Writer和Reader介面 194
8.4.2 整合並完成工作 195
8.4.3 簡單的curl 199
8.4.4 結論 200
8.5 小結 200
第9章 測試和效能 201
9.1 單元測試 201
9.1.1 基礎單元測試 202
9.1.2 表組測試 205
9.1.3 模仿呼叫 208
9.1.4 測試服務端點 212
9.2 示例 217
9.3 基準測試 220
9.4 小結 224