《Go語言開發實戰(慕課版)》是2019年12月人民郵電出版社出版的圖書,作者是千鋒教育高教產品研發部。
基本介紹
- 中文名:Go語言開發實戰(慕課版)
- 作者:千鋒教育高教產品研發部
- 出版時間:2019年12月
- 出版社:人民郵電出版社
- 頁數:343 頁
- ISBN:9787115515780
- 定價:68 元
- 開本:16 開
- 裝幀:平裝
內容簡介,圖書目錄,
內容簡介
本書共有14章,內容包括:初識Go語言、Go語言的基本語法、Go語言的流程控制、函式與指針、Go語言的內置容器、Go語言的常用內置包、Go語言面向對象編程、Go語言異常處理、Go語言檔案IO操作、Go語言網路編程、Go語言資料庫編程、Go語言並發編程、Go語言密碼學算法、Beego框架項目實戰。
圖書目錄
第 1章 初識Go語言 1
1.1 Go語言的發展歷史 1
1.2 Go語言的特性 2
1.2.1 Go語言的特點和優勢 2
1.2.2 使用Go語言的項目與企業 3
1.3 安裝和配置Golang 3
1.3.1 Windows版本安裝 4
1.3.2 Mac OS版本安裝 6
1.3.3 Linux版本安裝 7
1.4 搭建集成開發環境GoLand 7
1.4.1 GoLand的下載及安裝 7
1.4.2 GoLand的使用 8
1.4.3 編寫第 一個程式HelloWorld 8
1.4.4 GoLand的快捷鍵 11
1.5 Go語言的結構組成及編碼規範 11
1.5.1 Go語言的結構組成 11
1.5.2 Go語言的標識符 12
1.5.3 Go語言的編碼規範 14
1.6 本章小結 15
1.7 習題 15
第 2章 Go語言的基本語法 16
2.1 變數 16
2.1.1 變數的概念 16
2.1.2 變數聲明 17
2.1.3 變數多重賦值 18
2.1.4 匿名變數 19
2.2 數據類型 19
2.2.1 整型 20
2.2.2 浮點型 20
2.2.3 複數型 21
2.2.4 布爾型 21
2.2.5 字元串 21
2.2.6 字元 22
2.3 列印格式化 23
2.3.1 通用列印格式 23
2.3.2 布爾型列印格式 23
2.3.3 整型列印格式 24
2.3.4 浮點型與複數型的列印格式 25
2.3.5 字元串與位元組數組的列印格式 27
2.4 數據類型轉換 27
2.4.1 基本語法 27
2.4.2 浮點型與整型之間轉換 28
2.4.3 整型轉字元串類型 28
2.5 常量 30
2.5.1 聲明方式 30
2.5.2 常量用於枚舉 30
2.5.3 iota 31
2.6 類型別名與類型定義 33
2.7 Go語言的運算符 33
2.7.1 算術運算符 34
2.7.2 關係運算符 35
2.7.3 邏輯運算符 36
2.7.4 位運算符 37
2.7.5 賦值運算符 40
2.7.6 其他運算符 41
2.8 運算符優先權 42
2.9 本章小結 43
2.10 習題 44
第3章 Go語言的流程控制 45
3.1 流程控制概述 45
3.1.1 條件判斷語句 45
3.1.2 條件分支語句 45
3.1.3 循環語句 46
3.1.4 循環控制語句 46
3.2 if條件判斷語句 46
3.2.1 語法結構 46
3.2.2 使用案例 47
3.2.3 特殊寫法 48
3.3 if嵌套語句 49
3.3.1 語法結構 49
3.3.2 使用案例 49
3.4 switch分支語句 50
3.4.1 語法結構 50
3.4.2 使用案例 51
3.4.3 類型轉換 52
3.5 for循環語句 53
3.5.1 語法結構 53
3.5.2 使用案例 57
3.6 for嵌套循環語句 59
3.6.1 語法結構 59
3.6.2 使用案例 59
3.7 循環控制語句 61
3.7.1 break語句 61
3.7.2 continue語句 62
3.7.3 goto語句 63
3.8 本章小結 64
3.9 習題 64
第4章 Go語言的函式與指針 66
4.1 函式 66
4.1.1 函式聲明 66
4.1.2 變數作用域 67
4.1.3 函式變數(函式作為值) 69
4.1.4 匿名函式 71
4.1.5 閉包 73
4.1.6 可變參數 76
4.1.7 遞歸函式 77
4.2 指針 79
4.2.1 指針的概念 79
4.2.2 聲明指針 79
4.2.3 空指針 82
4.2.4 使用指針 82
4.2.5 指針數組 83
4.2.6 指針的指針 84
4.3 函式的參數傳遞 85
4.3.1 值傳遞(傳值) 85
4.3.2 引用傳遞(傳引用) 85
4.3.3 值傳遞和引用傳遞的細節問題 89
4.4 本章小結 90
4.5 習題 90
第5章 Go語言的內置容器 92
5.1 數組 92
5.1.1 數組的概念 92
5.1.2 數組的語法 92
5.1.3 數組的長度 93
5.1.4 遍歷數組 94
5.1.5 多維數組 94
5.1.6 數組是值類型 96
5.2 切片 97
5.2.1 切片的概念 97
5.2.2 切片的語法 97
5.2.3 len和cap函式 99
5.2.4 切片是引用類型 100
5.2.5 append和copy函式 101
5.3 map 104
5.3.1 map的概念 104
5.3.2 map的語法 105
5.3.3 delete函式 107
5.3.4 map是引用類型 108
5.4 本章小結 109
5.5 習題 109
第6章 Go語言的常用內置包 111
6.1 字元串處理概述 111
6.1.1 字元串處理包簡介 111
6.1.2 字元串的遍歷 111
6.2 strings包的字元串處理函式 113
6.2.1 檢索字元串 113
6.2.2 分割字元串 116
6.2.3 大小寫轉換 117
6.2.4 修剪字元串 118
6.2.5 比較字元串 120
6.3 strconv包的常用函式 122
6.3.1 Parse類函式 122
6.3.2 Format類函式 123
6.4 regexp正則表達式包 125
6.4.1 正則表達式簡介 125
6.4.2 正則表達式中主要元字元 125
6.4.3 regexp包中核心函式及方法
介紹 127
6.5 time包 130
6.6 math包 133
6.7 隨機數 134
6.7.1 rand包的核心方法介紹 135
6.7.2 獲取隨機數的幾種方式 135
6.8 鍵盤輸入 137
6.8.1 Scanln函式 137
6.8.2 隨機數+鍵盤輸入案例——猜
數字遊戲 138
6.9 本章小結 139
6.10 習題 140
第7章 Go語言面向對象編程 141
7.1 面向對象思想概述 141
7.1.1 面向過程與面向對象 141
7.1.2 Go語言面向對象 142
7.2 結構體 143
7.2.1 定義結構體與實例化 143
7.2.2 結構體的語法糖 144
7.2.3 結構體是值類型 145
7.2.4 結構體的深拷貝和淺拷貝 147
7.2.5 結構體作為函式的參數及
返回值 148
7.2.6 匿名結構體和匿名欄位 150
7.2.7 結構體嵌套 152
7.3 方法 155
7.3.1 方法的概念 155
7.3.2 基本語法 156
7.3.3 方法和函式 157
7.3.4 方法繼承 158
7.3.5 方法重寫 159
7.4 接口 160
7.4.1 接口的概念 160
7.4.2 接口的定義與實現 161
7.4.3 duck typing 162
7.4.4 多態 164
7.4.5 空接口 166
7.4.6 接口對象轉型 167
7.5 本章小結 170
7.6 習題 170
第8章 Go語言異常處理 172
8.1 error 172
8.1.1 error接口 172
8.1.2 創建error對象 174
8.1.3 自定義錯誤 175
8.2 defer 177
8.2.1 函式中使用defer 177
8.2.2 方法中使用defer 178
8.2.3 defer參數 179
8.2.4 堆疊的推遲 179
8.3 panic和recover機制 180
8.3.1 panic 180
8.3.2 recover 182
8.4 本章小結 183
8.5 習題 183
第9章 Go語言檔案I/O操作 185
9.1 檔案信息 185
9.1.1 檔案概述 185
9.1.2 FileInfo接口 185
9.1.3 檔案路徑 188
9.2 檔案常規操作 189
9.2.1 創建 189
9.2.2 創建檔案 190
9.2.3 打開和關閉檔案 191
9.2.4 刪除檔案 192
9.3 讀寫檔案及複製檔案 193
9.3.1 讀取檔案 193
9.3.2 寫入檔案 194
9.3.3 複製檔案 196
9.4 ioutil包 197
9.4.1 ioutil包核心函式 197
9.4.2 示例代碼 197
9.5 bufio包 199
9.5.1 緩衝區的原理 199
9.5.2 bufio.Reader結構體 200
9.5.3 bufio.Writer結構體 201
9.5.4 Scanner 203
9.6 本章小結 205
9.7 習題 205
第 10章 Go語言網路編程 206
10.1 HTTP概述 206
10.1.1 HTTP的概念 206
10.1.2 HTTP請求方法 207
10.1.3 HTTPS通信原理 207
10.1.4 HTTPS的作用 207
10.2 HTTP協定客戶端實現 208
10.3 HTTP協定服務端實現 213
10.3.1 啟動Web服務的幾種方式 213
10.3.2 伺服器端獲取客戶端請求的
數據 218
10.4 Golang模板 221
10.4.1 模板的概念 221
10.4.2 基本語法 221
10.5 JSON編碼 224
10.5.1 JSON簡介 224
10.5.2 map轉JSON 225
10.5.3 結構體轉JSON 226
10.5.4 結構體欄位標籤 227
10.5.5 匿名欄位 228
10.5.6 注意事項 228
10.6 JSON解析 229
10.6.1 JSON轉切片 229
10.6.2 JSON轉結構體 229
10.6.3 結構體欄位標籤 230
10.6.4 匿名欄位 231
10.7 本章小結 232
10.8 習題 232
第 11章 Go語言資料庫編程 233
11.1 資料庫介紹 233
11.2 MySQL資料庫的使用 234
11.2.1 服務啟動和停止MySQL服務 234
11.2.2 登錄和退出MySQL資料庫 236
11.2.3 MySQL資料庫基本操作 238
11.3 MySQL數據類型 238
11.3.1 數值類型 238
11.3.2 日期時間類型 239
11.3.3 字元串類型 239
11.4 SQL基礎入門 240
11.4.1 SQL語言簡介 240
11.4.2 SQL分類 240
11.4.3 DDL語句基本用法 241
11.4.4 DML語句基本用法 243
11.4.5 DQL語句基本用法 244
11.5 Go程式操作MySQL資料庫 245
11.5.1 安裝MySQL模組 245
11.5.2 導入包 246
11.5.3 連線資料庫 246
11.5.4 增刪改數據 246
11.5.5 查詢數據 247
11.5.6 示例代碼 248
11.6 本章小結 253
11.7 習題 253
第 12章 Go語言並發編程 255
12.1 並發和並行 255
12.1.1 單道程式與多道程式 255
12.1.2 並發與並行的區別 255
12.2 進程和執行緒 256
12.2.1 程式與進程 256
12.2.2 進程與執行緒的區別 256
12.2.3 進程與執行緒的聯繫 256
12.3 Goroutine 257
12.3.1 協程的概念 257
12.3.2 Go語言中的協程 257
12.3.3 Coroutine與Goroutine 257
12.3.4 普通函式創建Goroutine 258
12.3.5 匿名函式創建Goroutine 260
12.3.6 啟動多個Goroutine 261
12.3.7 調整並發的運行性能 261
12.4 channel 262
12.4.1 channel的概述 262
12.4.2 創建channel類型 262
12.4.3 使用channel傳送數據 263
12.4.4 通過channel接收數據 263
12.4.5 阻塞 265
12.4.6 關閉channel 266
12.4.7 緩衝channel 267
12.4.8 單向channel 270
12.5 time包中與channel相關的
函式 271
12.5.1 Timer結構體 271
12.5.2 NewTimer函式 272
12.5.3 After函式 273
12.6 select分支語句 273
12.6.1 執行流程 273
12.6.2 示例代碼 274
12.7 sync包 275
12.7.1 同步等待組 276
12.7.2 互斥鎖 277
12.7.3 讀寫互斥鎖 279
12.7.4 條件變數 281
12.8 本章小結 283
12.9 習題 283
第 13章 Go語言密碼學算法 285
13.1 Hash算法 285
13.1.1 Hash的定義 285
13.1.2 流行的Hash算法 286
13.1.3 Hash與加密解密的區別 287
13.1.4 SHA-256 287
13.1.5 核心代碼 288
13.2 對稱加密算法 291
13.2.1 對稱加密簡介 291
13.2.2 DES和3DES算法 291
13.2.3 AES算法 292
13.2.4 AES的加密模式 292
13.2.5 填充方式 293
13.2.6 核心代碼 293
13.3 非對稱加密算法 299
13.3.1 非對稱加密簡介 299
13.3.2 非對稱加密算法實現數字簽名 299
13.3.3 RSA算法 300
13.3.4 核心代碼 300
13.4 橢圓曲線加密算法和橢圓曲線數字
簽名算法 304
13.4.1 橢圓曲線加密簡介 304
13.4.2 數字簽名的概念 305
13.4.3 核心代碼 306
13.5 字元編碼與解碼 308
13.5.1 Base64 308
13.5.2 Base58 309
13.6 本章小結 311
13.7 習題 312
第 14章 Beego框架項目
實戰 313
14.1 Beego框架介紹及項目初始化
配置 313
14.1.1 Beego簡介 313
14.1.2 Beego框架的主要特性 313
14.1.3 Beego安裝 314
14.1.4 bee工具的使用 315
14.1.5 創建項目 315
14.1.6 結構分析 317
14.1.7 路由設定 320
14.2 Elm後台管理平台項目介紹 321
14.2.1 項目介紹 321
14.2.2 項目效果展示 321
14.2.3 整體架構簡介 322
14.3 資料庫配置及ORM映射 323
14.3.1 ORM簡介 323
14.3.2 Beego項目中使用MySQL 323
14.3.3 數據導入 325
14.3.4 接口文檔說明 325
14.3.5 模組開發 325
14.3.6 數據格式封裝 327
14.4 Redis 328
14.4.1 Redis簡介 328
14.4.2 Redis安裝 328
14.4.3 Redis操作與使用 329
14.4.4 項目中使用Redis 330
14.4.5 登錄管理員退出操作 331
14.4.6 檔案操作 331
14.4.7 資料庫表關係映射 333
14.5 項目功能完善 334
14.5.1 商戶模組功能開發 334
14.5.2 食品模組功能開發 336
14.5.3 訂單模組功能開發 338
14.5.4 添加數據記錄模組開發 339
14.6 本章小結 342
14.7 習題 342