第1章 起步 1
1.1 Go簡介 1
1.1.1 Go語言簡史 1
1.1.2 Go是編譯型語言 2
1.2 安裝Go 2
1.2.1 在Windows係統中安裝 3
1.2.2 在macOS或Linux係統中安裝 4
1.3 設置環境 4
1.4 編寫第一個Go程序——Hello World 5
1.4.1 使用 go run 編譯並運行程序 6
1.4.2 Go吉祥物 6
1.5 小結 6
1.6 問與答 7
1.7 作業 7
1.7.1 小測驗 7
1.7.2 答案 7
1.8 練習 7
第2章 理解類型 8
2.1 數據類型是什麼 8
2.2 區分靜態類型和動態類型 8
2.3 使用布爾類型 11
2.4 理解數值類型 12
2.4.1 帶符號整數和無符號整數 13
2.4.2 浮點數 14
2.4.3 字符串 14
2.4.4 數組 14
2.5 檢查變量的類型 15
2.6 類型轉換 16
2.7 小結 17
2.8 問與答 17
2.9 作業 17
2.9.1 小測驗 17
2.9.2 答案 17
2.10 練習 18
第3章 理解變量 19
3.1 變量是什麼 19
3.2 快捷變量聲明 21
3.3 理解變量和零值 21
3.4 編寫簡短變量聲明 22
3.5 變量聲明方式 23
3.6 理解變量作用域 24
3.7 使用指針 25
3.8 聲明常量 27
3.9 小結 28
3.10 問與答 28
3.11 作業 29
3.11.1 小測驗 29
3.11.2 答案 29
3.12 練習 29
第4章 使用函數 30
4.1 函數是什麼 30
4.1.1 函數的結構 30
4.1.2 返迴單個值 31
4.1.3 返迴多個值 32
4.2 定義不定參數函數 33
4.3 使用具名返迴值 34
4.4 使用遞歸函數 35
4.5 將函數作為值傳遞 36
4.6 小結 38
4.7 問與答 38
4.8 作業 38
4.8.1 小測驗 38
4.8.2 答案 38
4.9 練習 39
第5章 控製流程 40
5.1 使用if語句 40
5.2 使用else語句 42
5.3 使用else if語句 43
5.4 使用比較運算符 44
5.5 使用算數運算符 45
5.6 使用邏輯運算符 45
5.7 使用switch語句 46
5.8 使用for語句進行循環 47
5.8.1 包含初始化語句和後續語句的for語句 49
5.8.2 包含range子句的for語句 49
5.9 使用defer語句 50
5.10 小結 52
5.11 問與答 52
5.12 作業 53
5.12.1 小測驗 53
5.12.2 答案 53
5.13 練習 53
第6章 數組、切片和映射 54
6.1 使用數組 54
6.2 使用切片 56
6.2.1 在切片中添加元素 56
6.2.2 在切片中刪除元素 58
6.2.3 賦值切片中的元素 58
6.3 使用映射 59
6.3.1 從映射中刪除元素 60
6.4 小結 61
6.5 問與答 61
6.6 作業 62
6.6.1 小測驗 62
6.6.2 答案 62
6.7 練習 62
第7章 使用結構體和指針 63
7.1 結構體是什麼 63
7.2 創建結構體 65
7.3 嵌套結構體 68
7.4 自定義結構體數據字段的默認值 69
7.5 比較結構體 71
7.6 理解共有和私有值 72
7.7 區分指針引用和值引用 73
7.8 小結 75
7.9 問與答 75
7.10 作業 76
7.10.1 小測驗 76
7.10.2 答案 76
7.11 練習 76
第8章 創建方法和接口 77
8.1 使用方法 77
8.2 創建方法集 79
8.3 使用方法和指針 80
8.4 使用接口 83
8.5 小結 86
8.6 問與答 86
8.7 作業 87
8.7.1 小測驗 87
8.7.2 答案 87
8.8 練習 87
第9章 使用字符串 88
9.1 創建字符串 88
9.2 理解rune字麵量 89
9.3 拼接字符串 90
9.3.1 使用緩衝區拼接字符串 92
9.3.2 理解字符串是什麼 93
9.3.3 處理字符串 94
9.4 小結 97
9.5 問與答 97
9.6 作業 97
9.6.1 小測驗 97
9.6.2 答案 97
9.7 練習 98
第10章 錯誤處理 99
10.1 錯誤處理及Go語言的獨特之處 99
10.2 理解錯誤類型 101
10.3 創建錯誤 101
10.4 設置錯誤格式 102
10.5 從函數返迴錯誤 103
10.6 錯誤和可用性 104
10.7 慎用panic 104
10.8 小結 106
10.9 問與答 106
10.10 作業 106
10.10.1 小測驗 106
10.10.2 答案 106
10.11 練習 107
第11章 使用Goroutine 108
11.1 理解並發 108
11.2 並發和並行 110
11.3 通過Web瀏覽器來理解並發 110
11.4 阻塞和非阻塞代碼 111
11.5 使用Goroutine處理並發操作 112
11.6 定義Goroutine 114
11.7 小結 114
11.8 問與答 114
11.9 作業 115
11.9.1 小測驗 115
11.9.2 答案 115
11.10 練習 115
第12章 通道簡介 116
12.1 使用通道 116
12.2 使用緩衝通道 119
12.3 阻塞和流程控製 120
12.4 將通道用作函數參數 123
12.5 使用select語句 123
12.6 退齣通道 126
12.7 小結 128
12.8 問與答 128
12.9 作業 128
12.9.1 小測驗 129
12.9.2 答案 129
12.10 練習
第13章 使用包實現代碼重用 130
13.1 導入包 130
13.2 理解包的用途 131
13.3 使用第三方包 132
13.4 安裝第三方包 132
13.5 管理第三方依賴 133
13.6 創建包 135
13.7 小結 137
13.8 問與答 137
13.9 作業 137
13.9.1 小測驗 137
13.9.2 答案 138
13.10 練習 138
第14章 Go語言命名約定 139
14.1 Go代碼格式設置 139
14.2 使用gofmt 140
14.3 配置文本編輯器 141
14.4 命名約定 142
14.5 使用golint 143
14.6 使用godoc 144
14.7 工作流程自動化 147
14.8 小結 148
14.9 問與答 149
14.10 作業 149
14.10.1 小測驗 149
14.10.2 答案 149
14.11 練習 149
第15章 測試和性能 150
15.1 測試:軟件開發最重要的方麵 150
15.1.1 單元測試 151
15.1.2 集成測試 151
15.1.3 功能測試 151
15.1.4 測試驅動開發 151
15.2 testing包 151
15.3 運行錶格測試驅動 154
15.4 基準測試 156
15.5 提供測試覆蓋率 158
15.6 小結 159
15.7 問與答 159
15.8 作業 159
15.8.1 小測驗 159
15.8.2 答案 159
15.9 練習 160
第16章 調試 161
16.1 日誌 161
16.2 打印數據 164
16.3 使用fmt包 165
16.4 使用Delve 168
16.5 使用gdb 170
16.6 小結 171
16.7 問與答 171
16.8 作業 171
16.8.1 小測驗 171
16.8.2 答案 172
16.9 練習 172
第17章 使用命令行程序 173
17.1 操作輸入和輸齣 174
17.2 訪問命令行參數 174
17.3 分析命令行標誌 176
17.4 指定標誌的類型 177
17.5 自定義幫助文本 178
17.6 創建子命令 179
17.7 POSIX兼容性 182
17.8 安裝分享命令行程序 182
17.9 小結 184
17.10 問與答 184
17.11 作業 184
17.11.1小測驗 185
17.11.2 答案 185
17.12 練習 185
第18章 創建HTTP服務器 186
18.1 通過Hello World Web服務器宣告您的存在 186
18.2 查看請求和響應 187
18.2.1 使用curl發齣請求 188
18.2.2 詳談路由 189
18.3 使用處理程序函數 189
18.4 處理404錯誤 190
18.5 設置報頭 191
18.6響應以不同類型的內容 192
18.7 響應不同類型的請求 194
18.8 獲取GET和POST請求中的數據 195
18.9 小結 197
18.10 問與答 198
18.11 作業 198
18.11.1 小測驗 198
18.11.2 答案 198
18.12 練習 199
第19章 創建HTTP客戶端 200
19.1 理解HTTP 200
19.2 發齣GET請求 201
19.3 發齣POST請求 202
19.4 進一步控製HTTP請求 204
19.5 調試HTTP請求 205
19.6 處理超時 207
19.7 小結 208
19.8 問與答 209
19.9 作業 209
19.9.1 小測驗 209
19.9.2 答案 209
19.10 練習 210
第20章 處理JSON 211
20.1 JSON簡介 211
20.2 使用JSON API 213
20.3 在Go語言中使用JSON 213
20.4 解碼JSON 217
20.5 映射數據類型 219
20.6 處理通過HTTP收到的JSON 220
20.7 小結 221
20.8 問與答 221
20.9 作業 222
20.9.1 小測驗 222
20.9.2 答案 222
20.10 練習 222
第21章 處理文件 223
21.1 文件的重要性 223
21.2 使用ioutil包讀寫文件 224
21.2.1 讀取文件 224
21.2.2 創建文件 225
21.3 寫入文件 227
21.4 列齣目錄的內容 228
21.5 復製文件 229
21.6 刪除文件 230
21.7 使用文件來管理配置 231
21.7.1 使用JSON文件 231
21.7.2 使用TOML文件 232
21.8 小結 234
21.9 問與答 234
21.10 作業 234
21.10.1 小測驗 235
21.10.2 答案 235
21.11 練習 235
第22章 正則錶達式簡介 236
22.1定義正則錶達式 236
22.2 熟悉正則錶達式 238
22.3 使用正則錶達式驗證數據 239
22.4 使用正則錶達式來變換數據 240
22.5 小結 241
22.6 問與答 241
22.7 作業 241
22.7.1 小測驗 242
22.7.2 答案 242
22.8 練習 242
第23章 Go語言時間編程 243
23.1 時間元素編程 243
23.2 讓程序休眠 245
23.3 設置超時時間 245
23.4 使用ticker 246
23.5 以字符串格式錶示時間 247
23.6 使用結構體Time 248
23.7時間加減 249
23.8 比較兩個不同的Time結構體 249
23.9 小結 250
23.10 問與答 250
23.11 作業 251
23.11.1 小測驗 251
23.11.2 答案 251
23.12 練習 251
第24章 部署Go語言代碼 252
24.1 理解目標 252
24.2 壓縮二進製文件大小 255
24.3 使用Docker 256
24.4 下載二進製文件 258
24.5 使用go get 259
24.6 通過包管理器發布代碼 260
24.7 小結 260
24.8 問與答 260
24.9 作業 261
24.9.1 小測驗 261
24.9.2 答案 261
24.10 練習
· · · · · · (
收起)