《Go語言極簡一本通:零基礎入門到項目實戰》是2021年電子工業出版社出版書籍,作者是歡喜。
基本介紹
- 中文名:Go語言極簡一本通:零基礎入門到項目實戰
- 作者:歡喜
- 出版時間:2021年3月
- 出版社:電子工業出版社
- 頁數:256 頁
- ISBN:9787121407482
- 定價:99 元
- 開本:16 開
內容簡介,目錄,第一部分 基礎知識,第二部分 高效並發,第三部分 項目實戰,
內容簡介
本書是一本Go語言入門書,全書共分為三部分。第一部分講解Go語言基礎知識,包括變數與簡單類型、數組、切片、流程控制、字典、函式、結構體與方法、接口等,可以幫助讀者快速掌握Go語言的基本程式結構。第二部分講解Go語言高效並發相關知識,包括協程與通道、並發資源、包管理和測試等,讓讀者對Go語言層面的並發支持有更深入的理解。第三部分講解Go語言項目實戰,包括Gin框架、生活點評項目實戰、賬戶管理系統實戰,以及OAuth 2.0的授權協定等。通過實戰,把前面講解的知識點運用起來,幫助讀者快速上手,積累項目經驗。
目錄
第一部分 基礎知識
第1章 起步 1
1.1 原始碼與程式 1
1.2 變數的命名 2
1.3 指針 4
1.4 包和檔案 5
1.5 變數的生命周期 6
1.6 作用域 7
第2章 變數與簡單類型 9
2.1 運行hello_world.go 9
2.2 變數 10
2.3 字元串 11
2.3.1 修改字元串的大小寫 11
2.3.2 合併(拼接)字元串 12
2.3.3 使用制表符或換行符添加空白 13
2.3.4 刪除空格 13
2.4 數字 14
2.4.1 整數 15
2.4.2 浮點數 15
2.4.3 使用strconv.Itoa方法避免類型錯誤 15
2.5 注釋 16
2.6 小結 17
第3章 數組 18
3.1 數組簡介 18
3.2 初始化數組元素的3種方式 19
3.3 訪問數組元素 20
3.4 索引是從0而不是從1開始的 21
3.5 使用數組中的各個值 21
3.6 遍歷數組 22
3.7 循環 23
3.8 修改數組中的元素 24
3.9 使用列表時應避免索引錯誤 24
3.10 小結 25
第4章 切片 26
4.1 切片簡介 26
4.1.1 創建切片 27
4.1.2 訪問切片元素 30
4.1.3 遍歷切片元素 31
4.1.4 複製切片 32
4.2 修改、添加和刪除元素 33
4.2.1 修改切片元素 34
4.2.2 在切片中添加元素 34
4.2.3 從切片中刪除元素 36
4.3 使用切片時應避免索引錯誤 37
4.4 遍歷切片時容易犯的錯誤 38
4.5 小結 39
第5章 流程控制 41
5.1 if語句 41
5.2 條件測試 42
5.2.1 檢查是否相等 42
5.2.2 比較數字 43
5.2.3 檢查多個條件 43
5.2.4 檢查在切片中是否包含特定值 44
5.2.5 布爾表達式 44
5.2.6 if-else 結構 45
5.3 switch語句 46
5.4 循環語句 49
5.5 小結 51
第6章 字典 52
6.1 字典簡介 52
6.2 創建字典 54
6.3 使用字典 55
6.3.1 訪問字典中的值 56
6.3.2 添加鍵值對 57
6.3.3 修改字典中的值 57
6.3.4 刪除鍵值對 58
6.4 遍歷字典 59
6.4.1 在字典中嵌入切片 59
6.4.2 在字典中嵌入字典 61
6.5 避免遍歷 61
6.6 小結 63
第7章 函式 64
7.1 定義函式 64
7.1.1 向函式傳遞信息 67
7.1.2 實際參數和形式參數 67
7.1.3 位置實參 68
7.1.4 傳遞數組 69
7.1.5 傳遞切片 70
7.1.6 避免實參錯誤 71
7.2 返回值 71
7.2.1 返回簡單值 71
7.2.2 返回字典 72
7.3 返回多個值 72
7.4 函式變數 75
7.5 匿名函式 78
7.6 閉包 79
7.7 變長函式 81
7.8 延遲函式調用 82
7.9 panic 83
7.10 recover 84
7.11 小結 85
第8章 結構體與方法 86
8.1 結構體概述 86
8.2 結構體的使用 88
8.3 匿名成員與結構體嵌套 89
8.4 結構體與JSON 91
8.5 方法 93
8.6 指針接收者方法 94
8.7 實參接收者type與*type 96
8.8 值方法與指針方法的區別 98
8.9 方法與表達式 100
8.10 小結 100
第9章 接口 102
9.1 接口的定義及使用 102
9.2 非侵入式接口 104
9.3 使用指針接收者實現接口 106
9.4 接口的嵌套 107
9.5 接口值 110
9.6 error接口 112
9.7 類型斷言 113
9.8 類型分支 114
9.9 動態類型、動態值和靜態類型 114
9.10 小結 118
第二部分 高效並發
第10章 協程與通道 119
10.1 並發 119
10.2 協程並發模型 121
10.3 goroutine(協程)的使用 124
10.4 channel(通道) 125
10.5 channel進階 126
10.6 單向channel 129
10.7 無緩衝channel 130
10.8 緩衝channel 131
10.9 select 132
10.10 關閉channel 135
10.11 小結 136
第11章 並發資源 137
11.1 競態 137
11.2 sync.Mutex與sync.RWMutex 139
11.3 條件變數 146
11.4 原子操作 149
11.5 WaitGroup類型與Once類型 152
11.6 context.Context類型 155
11.7 小結 159
第12章 包管理 161
12.1 go mod 161
12.2 go mod中的命令 162
12.3 小結 164
第13章 測試 165
第14章 反射 169
14.1 反射簡介 169
14.2 動態調用無參方法 170
14.3 動態調用有參方法 170
14.4 動態struct tag解析 171
14.5 對類型進行轉換和賦值 172
14.6 使用Kind與switch處理不同分支 174
14.7 判斷是否實現了某接口 175
第三部分 項目實戰
第15章 Gin框架 177
15.1 HTTP簡介 177
15.2 Gin框架簡介 183
15.3 RESTful 184
15.4 路由參數 185
15.5 URL查詢參數的獲取 186
15.6 接收數組和map 187
15.7 獲取Form表單參數 188
15.8 JSON渲染輸出 190
第16章 生活點評項目實戰 193
16.1 總體需求分析 193
16.2 開發精要 196
16.3 接口設計 197
16.4 餐廳詳情模組 198
16.5 資料庫訪問層 200
16.6 服務層 203
16.7 路由和方法 204
16.8 團購下單模組 204
16.9 資料庫訪問層 205
16.10 團購下單——服務層 205
16.11 團購下單——路由和方法 206
16.12 小結 208
第17章 賬戶管理系統實戰 209
17.1 啟動一個簡單的RESTful伺服器 209
17.2 Viper 211
17.3 日誌追蹤 217
17.4 定義錯誤碼 220
17.5 創建賬戶 224
17.6 刪除賬戶 228
17.7 更新賬戶 229
17.8 賬戶列表 231
17.9 根據賬戶名稱查詢用戶信息 234
17.10 OAuth 2.0簡介 236
17.11 OAuth 2.0 的四種授權模式 237