Go語言極簡一本通:零基礎入門到項目實戰

歡喜

  • 出版商: 電子工業
  • 出版日期: 2021-03-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 256
  • 裝訂: 平裝
  • ISBN: 7121407485
  • ISBN-13: 9787121407482

下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書是一本Go語言入門書,全書共分為三部分。第一部分講解Go語言基礎知識,包括變量與簡單類型、數組、切片、流程控制、字典、函數、結構體與方法、接口等,可以幫助讀者快速掌握Go語言的基本程序結構。第二部分講解Go語言高效並發相關知識,包括協程與通道、並發資源、包管理和測試等,讓讀者對Go語言層面的並發支持有更深入的理解。第三部分講解Go語言項目實戰,包括Gin框架、生活點評項目實戰、賬戶管理系統實戰,以及OAuth 2.0的授權協議等。通過實戰,把前面講解的知識點運用起來,幫助讀者快速上手,積累項目經驗。

作者簡介

歡喜,微信公眾號“面向加薪學習” 的作者,B站“面向加薪學習”的作者, “GoCn” 小組成員,在社區連載了一系列Go 語言相關的技術文章,並在B站發布了一系列Go語言相關視頻,均廣受歡迎。
擁有多年國內一線互聯網公司從業經驗,主導全棧項目,擅長Go、Java、Vue、移動開發(Flutter)和小程序(Taro),擁有豐富的大型網站架構經驗。

目錄大綱

第一部分基礎知識
第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