Go語言極簡一本通:零基礎(chǔ)入門到項(xiàng)目實(shí)戰(zhàn)
定 價(jià):99 元
- 作者:歡喜
- 出版時(shí)間:2021/3/1
- ISBN:9787121407482
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312
- 頁碼:256
- 紙張:
- 版次:01
- 開本:16開
本書是一本Go語言入門書,全書共分為三部分。第一部分講解Go語言基礎(chǔ)知識,包括變量與簡單類型、數(shù)組、切片、流程控制、字典、函數(shù)、結(jié)構(gòu)體與方法、接口等,可以幫助讀者快速掌握Go語言的基本程序結(jié)構(gòu)。第二部分講解Go語言高效并發(fā)相關(guān)知識,包括協(xié)程與通道、并發(fā)資源、包管理和測試等,讓讀者對Go語言層面的并發(fā)支持有更深入的理解。第三部分講解Go語言項(xiàng)目實(shí)戰(zhàn),包括Gin框架、生活點(diǎn)評項(xiàng)目實(shí)戰(zhàn)、賬戶管理系統(tǒng)實(shí)戰(zhàn),以及OAuth 2.0的授權(quán)協(xié)議等。通過實(shí)戰(zhàn),把前面講解的知識點(diǎn)運(yùn)用起來,幫助讀者快速上手,積累項(xiàng)目經(jīng)驗(yàn)。
歡 喜,微信公眾號 “面向加薪學(xué)習(xí)” 的作者,B站 “面向加薪學(xué)習(xí)”的作者, “GoCn” 小組成員,在社區(qū)連載了一系列 Go 語言相關(guān)的技術(shù)文章,并在B站發(fā)布了一系列Go語言相關(guān)視頻,均廣受歡迎。擁有多年國內(nèi)一線互聯(lián)網(wǎng)公司從業(yè)經(jīng)驗(yàn),主導(dǎo)全棧項(xiàng)目,擅長Go、Java、Vue、移動開發(fā)(Flutter)和小程序(Taro),擁有豐富的大型網(wǎng)站架構(gòu)經(jīng)驗(yàn)。
第一部分 基礎(chǔ)知識
第1章 起步 1
1.1 源代碼與程序 1
1.2 變量的命名 2
1.3 指針 4
1.4 包和文件 5
1.5 變量的生命周期 6
1.6 作用域 7
第2章 變量與簡單類型 9
2.1 運(yùn)行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 數(shù)字 14
2.4.1 整數(shù) 15
2.4.2 浮點(diǎn)數(shù) 15
2.4.3 使用strconv.Itoa方法避免類型錯(cuò)誤 15
2.5 注釋 16
2.6 小結(jié) 17
第3章 數(shù)組 18
3.1 數(shù)組簡介 18
3.2 初始化數(shù)組元素的3種方式 19
3.3 訪問數(shù)組元素 20
3.4 索引是從0而不是從1開始的 21
3.5 使用數(shù)組中的各個(gè)值 21
3.6 遍歷數(shù)組 22
3.7 循環(huán) 23
3.8 修改數(shù)組中的元素 24
3.9 使用列表時(shí)應(yīng)避免索引錯(cuò)誤 24
3.10 小結(jié) 25
第4章 切片 26
4.1 切片簡介 26
4.1.1 創(chuàng)建切片 27
4.1.2 訪問切片元素 30
4.1.3 遍歷切片元素 31
4.1.4 復(fù)制切片 32
4.2 修改、添加和刪除元素 33
4.2.1 修改切片元素 34
4.2.2 在切片中添加元素 34
4.2.3 從切片中刪除元素 36
4.3 使用切片時(shí)應(yīng)避免索引錯(cuò)誤 37
4.4 遍歷切片時(shí)容易犯的錯(cuò)誤 38
4.5 小結(jié) 39
第5章 流程控制 41
5.1 if語句 41
5.2 條件測試 42
5.2.1 檢查是否相等 42
5.2.2 比較數(shù)字 43
5.2.3 檢查多個(gè)條件 43
5.2.4 檢查在切片中是否包含特定值 44
5.2.5 布爾表達(dá)式 44
5.2.6 if-else 結(jié)構(gòu) 45
5.3 switch語句 46
5.4 循環(huán)語句 49
5.5 小結(jié) 51
第6章 字典 52
6.1 字典簡介 52
6.2 創(chuàng)建字典 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 小結(jié) 63
第7章 函數(shù) 64
7.1 定義函數(shù) 64
7.1.1 向函數(shù)傳遞信息 67
7.1.2 實(shí)際參數(shù)和形式參數(shù) 67
7.1.3 位置實(shí)參 68
7.1.4 傳遞數(shù)組 69
7.1.5 傳遞切片 70
7.1.6 避免實(shí)參錯(cuò)誤 71
7.2 返回值 71
7.2.1 返回簡單值 71
7.2.2 返回字典 72
7.3 返回多個(gè)值 72
7.4 函數(shù)變量 75
7.5 匿名函數(shù) 78
7.6 閉包 79
7.7 變長函數(shù) 81
7.8 延遲函數(shù)調(diào)用 82
7.9 panic 83
7.10 recover 84
7.11 小結(jié) 85
第8章 結(jié)構(gòu)體與方法 86
8.1 結(jié)構(gòu)體概述 86
8.2 結(jié)構(gòu)體的使用 88
8.3 匿名成員與結(jié)構(gòu)體嵌套 89
8.4 結(jié)構(gòu)體與JSON 91
8.5 方法 93
8.6 指針接收者方法 94
8.7 實(shí)參接收者type與*type 96
8.8 值方法與指針方法的區(qū)別 98
8.9 方法與表達(dá)式 100
8.10 小結(jié) 100
第9章 接口 102
9.1 接口的定義及使用 102
9.2 非侵入式接口 104
9.3 使用指針接收者實(shí)現(xiàn)接口 106
9.4 接口的嵌套 107
9.5 接口值 110
9.6 error接口 112
9.7 類型斷言 113
9.8 類型分支 114
9.9 動態(tài)類型、動態(tài)值和靜態(tài)類型 114
9.10 小結(jié) 118
第二部分 高效并發(fā)
第10章 協(xié)程與通道 119
10.1 并發(fā) 119
10.2 協(xié)程并發(fā)模型 121
10.3 goroutine(協(xié)程)的使用 124
10.4 channel(通道) 125
10.5 channel進(jìn)階 126
10.6 單向channel 129
10.7 無緩沖channel 130
10.8 緩沖channel 131
10.9 select 132
10.10 關(guān)閉channel 135
10.11 小結(jié) 136
第11章 并發(fā)資源 137
11.1 競態(tài) 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 小結(jié) 159
第12章 包管理 161
12.1 go mod 161
12.2 go mod中的命令 162
12.3 小結(jié) 164
第13章 測試 165
第14章 反射 169
14.1 反射簡介 169
14.2 動態(tài)調(diào)用無參方法 170
14.3 動態(tài)調(diào)用有參方法 170
14.4 動態(tài)struct tag解析 171
14.5 對類型進(jìn)行轉(zhuǎn)換和賦值 172
14.6 使用Kind與switch處理不同分支 174
14.7 判斷是否實(shí)現(xiàn)了某接口 175
第三部分 項(xiàng)目實(shí)戰(zhàn)
第15章 Gin框架 177
15.1 HTTP簡介 177
15.2 Gin框架簡介 183
15.3 RESTful 184
15.4 路由參數(shù) 185
15.5 URL查詢參數(shù)的獲取 186
15.6 接收數(shù)組和map 187
15.7 獲取Form表單參數(shù) 188
15.8 JSON渲染輸出 190
第16章 生活點(diǎn)評項(xiàng)目實(shí)戰(zhàn) 193
16.1 總體需求分析 193
16.2 開發(fā)精要 196
16.3 接口設(shè)計(jì) 197
16.4 餐廳詳情模塊 198
16.5 數(shù)據(jù)庫訪問層 200
16.6 服務(wù)層 203
16.7 路由和方法 204
16.8 團(tuán)購下單模塊 204
16.9 數(shù)據(jù)庫訪問層 205
16.10 團(tuán)購下單——服務(wù)層 205
16.11 團(tuán)購下單——路由和方法 206
16.12 小結(jié) 208
第17章 賬戶管理系統(tǒng)實(shí)戰(zhàn) 209
17.1 啟動一個(gè)簡單的RESTful服務(wù)器 209
17.2 Viper 211
17.3 日志追蹤 217
17.4 定義錯(cuò)誤碼 220
17.5 創(chuàng)建賬戶 224
17.6 刪除賬戶 228
17.7 更新賬戶 229
17.8 賬戶列表 231
17.9 根據(jù)賬戶名稱查詢用戶信息 234
17.10 OAuth 2.0簡介 236
17.11 OAuth 2.0 的四種授權(quán)模式 237