Go語言入門經典 Go语言入门经典

[英]喬治 奧爾波

買這商品的人也買了...

商品描述

Go語言是谷歌推出的一種全新的編程語言,旨在不損失應用程序性能的情況下降低代碼的復雜性,具有“部署簡單、並發性好、語言設計良好、執行性能好”等優勢,目前國內諸多IT公司均已採用Go語言開發項目。
《Go語言入門經典》分為24章,講解了使用Go語言編寫高質量程序的方法,其內容涵蓋了Go語言特性和標準庫安裝包,Go與JavaScript的對比,Go命令行工具,Go中的基本概念(比如類型、變量、函數、控制結構、指針、接口等)、錯誤處理、Goroutine和通道、Go代碼測試、使用Go編寫HTTP客戶端與服務器、處理JSON和文件、部署Go代碼等。
《Go語言入門經典》適合想要掌握Go語言的零基礎讀者以及對Go語言感興趣的程序員學習,還可作為高等院校教授Go語言課程的教材。

作者簡介

George Ornbo是一位軟件工程師、博主和作家,擁有14年的軟件開發經驗,

其客戶既有初創公司,也有大型企業客戶;

熟悉眾多編程語言、UNIX和Web底層協議。

當前供職於倫敦的一家區塊鏈初創公司。

目錄大綱

第 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
從映射中刪除元素 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 練習 129

第 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 指ding標誌的類型 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