Go語言開發(fā)實(shí)戰(zhàn)(慕課版)
定 價:68 元
- 作者:千鋒教育高教產(chǎn)品研發(fā)部
- 出版時間:2019/12/1
- ISBN:9787115515780
- 出 版 社:人民郵電出版社
- 中圖法分類:TP312
- 頁碼:343
- 紙張:
- 版次:01
- 開本:16開
本書共有14章,內(nèi)容包括:初識Go語言、Go語言的基本語法、Go語言的流程控制、函數(shù)與指針、Go語言的內(nèi)置容器、Go語言的常用內(nèi)置包、Go語言面向?qū)ο缶幊、Go語言異常處理、Go語言文件IO操作、Go語言網(wǎng)絡(luò)編程、Go語言數(shù)據(jù)庫編程、Go語言并發(fā)編程、Go語言密碼學(xué)算法、Beego框架項(xiàng)目實(shí)戰(zhàn)。
1.本書涵蓋Go 語言最精華、最重要的核心特性包括類型系統(tǒng)、接口、并發(fā)。
2.本書介紹了其他書沒有的密碼學(xué)內(nèi)容。
3.本書通過當(dāng)下“最流行”的項(xiàng)目案例帶領(lǐng)讀者從0-1實(shí)現(xiàn)技術(shù)開發(fā)。
千鋒教育 1.采用全程面授高品質(zhì)、高成本培養(yǎng)模式,教學(xué)大綱緊跟企業(yè)需求,擁有全國一體化就業(yè)保障服務(wù),成為學(xué)員信賴的IT職業(yè)教育品牌。 2.獲得榮譽(yù)包括:中關(guān)村移動互聯(lián)網(wǎng)產(chǎn)業(yè)聯(lián)盟副理事長單位、中國軟件協(xié)會教育培訓(xùn)委員會認(rèn)證一級培訓(xùn)機(jī)構(gòu)、中關(guān)村國際孵化軟件協(xié)會授權(quán)中關(guān)村移動互聯(lián)網(wǎng)學(xué)院、教育部教育管理信息中心指定移動互聯(lián)網(wǎng)實(shí)訓(xùn)基地等。
第1章 初識Go語言 1
1.1 Go語言的發(fā)展歷史 1
1.2 Go語言的特性 2
1.2.1 Go語言的特點(diǎn)和優(yōu)勢 2
1.2.2 使用Go語言的項(xiàng)目與企業(yè) 3
1.3 安裝和配置Golang 3
1.3.1 Windows版本安裝 4
1.3.2 Mac OS版本安裝 6
1.3.3 Linux版本安裝 7
1.4 搭建集成開發(fā)環(huán)境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語言的結(jié)構(gòu)組成及編碼規(guī)范 11
1.5.1 Go語言的結(jié)構(gòu)組成 11
1.5.2 Go語言的標(biāo)識符 12
1.5.3 Go語言的編碼規(guī)范 14
1.6 本章小結(jié) 15
1.7 習(xí)題 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 數(shù)據(jù)類型 19
2.2.1 整型 20
2.2.2 浮點(diǎn)型 20
2.2.3 復(fù)數(shù)型 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 浮點(diǎn)型與復(fù)數(shù)型的打印格式 25
2.3.5 字符串與字節(jié)數(shù)組的打印格式 27
2.4 數(shù)據(jù)類型轉(zhuǎn)換 27
2.4.1 基本語法 27
2.4.2 浮點(diǎn)型與整型之間轉(zhuǎn)換 28
2.4.3 整型轉(zhuǎn)字符串類型 28
2.5 常量 30
2.5.1 聲明方式 30
2.5.2 常量用于枚舉 30
2.5.3 iota 31
2.6 類型別名與類型定義 33
2.7 Go語言的運(yùn)算符 33
2.7.1 算術(shù)運(yùn)算符 34
2.7.2 關(guān)系運(yùn)算符 35
2.7.3 邏輯運(yùn)算符 36
2.7.4 位運(yùn)算符 37
2.7.5 賦值運(yùn)算符 40
2.7.6 其他運(yùn)算符 41
2.8 運(yùn)算符優(yōu)先級 42
2.9 本章小結(jié) 43
2.10 習(xí)題 44
第3章 Go語言的流程控制 45
3.1 流程控制概述 45
3.1.1 條件判斷語句 45
3.1.2 條件分支語句 45
3.1.3 循環(huán)語句 46
3.1.4 循環(huán)控制語句 46
3.2 if條件判斷語句 46
3.2.1 語法結(jié)構(gòu) 46
3.2.2 使用案例 47
3.2.3 特殊寫法 48
3.3 if嵌套語句 49
3.3.1 語法結(jié)構(gòu) 49
3.3.2 使用案例 49
3.4 switch分支語句 50
3.4.1 語法結(jié)構(gòu) 50
3.4.2 使用案例 51
3.4.3 類型轉(zhuǎn)換 52
3.5 for循環(huán)語句 53
3.5.1 語法結(jié)構(gòu) 53
3.5.2 使用案例 57
3.6 for嵌套循環(huán)語句 59
3.6.1 語法結(jié)構(gòu) 59
3.6.2 使用案例 59
3.7 循環(huán)控制語句 61
3.7.1 break語句 61
3.7.2 continue語句 62
3.7.3 goto語句 63
3.8 本章小結(jié) 64
3.9 習(xí)題 64
第4章 Go語言的函數(shù)與指針 66
4.1 函數(shù) 66
4.1.1 函數(shù)聲明 66
4.1.2 變量作用域 67
4.1.3 函數(shù)變量(函數(shù)作為值) 69
4.1.4 匿名函數(shù) 71
4.1.5 閉包 73
4.1.6 可變參數(shù) 76
4.1.7 遞歸函數(shù) 77
4.2 指針 79
4.2.1 指針的概念 79
4.2.2 聲明指針 79
4.2.3 空指針 82
4.2.4 使用指針 82
4.2.5 指針數(shù)組 83
4.2.6 指針的指針 84
4.3 函數(shù)的參數(shù)傳遞 85
4.3.1 值傳遞(傳值) 85
4.3.2 引用傳遞(傳引用) 85
4.3.3 值傳遞和引用傳遞的細(xì)節(jié)問題 89
4.4 本章小結(jié) 90
4.5 習(xí)題 90
第5章 Go語言的內(nèi)置容器 92
5.1 數(shù)組 92
5.1.1 數(shù)組的概念 92
5.1.2 數(shù)組的語法 92
5.1.3 數(shù)組的長度 93
5.1.4 遍歷數(shù)組 94
5.1.5 多維數(shù)組 94
5.1.6 數(shù)組是值類型 96
5.2 切片 97
5.2.1 切片的概念 97
5.2.2 切片的語法 97
5.2.3 len()和cap()函數(shù) 99
5.2.4 切片是引用類型 100
5.2.5 append()和copy()函數(shù) 101
5.3 map 104
5.3.1 map的概念 104
5.3.2 map的語法 105
5.3.3 delete()函數(shù) 107
5.3.4 map是引用類型 108
5.4 本章小結(jié) 109
5.5 習(xí)題 109
第6章 Go語言的常用內(nèi)置包 111
6.1 字符串處理概述 111
6.1.1 字符串處理包簡介 111
6.1.2 字符串的遍歷 111
6.2 strings包的字符串處理函數(shù) 113
6.2.1 檢索字符串 113
6.2.2 分割字符串 116
6.2.3 大小寫轉(zhuǎn)換 117
6.2.4 修剪字符串 118
6.2.5 比較字符串 120
6.3 strconv包的常用函數(shù) 122
6.3.1 Parse類函數(shù) 122
6.3.2 Format類函數(shù) 123
6.4 regexp正則表達(dá)式包 125
6.4.1 正則表達(dá)式簡介 125
6.4.2 正則表達(dá)式中主要元字符 125
6.4.3 regexp包中核心函數(shù)及方法
介紹 127
6.5 time包 130
6.6 math包 133
6.7 隨機(jī)數(shù) 134
6.7.1 rand包的核心方法介紹 135
6.7.2 獲取隨機(jī)數(shù)的幾種方式 135
6.8 鍵盤輸入 137
6.8.1 Scanln()函數(shù) 137
6.8.2 隨機(jī)數(shù)+鍵盤輸入案例——猜
數(shù)字游戲 138
6.9 本章小結(jié) 139
6.10 習(xí)題 140
第7章 Go語言面向?qū)ο缶幊獭?41
7.1 面向?qū)ο笏枷敫攀觥?41
7.1.1 面向過程與面向?qū)ο蟆?41
7.1.2 Go語言面向?qū)ο蟆?42
7.2 結(jié)構(gòu)體 143
7.2.1 定義結(jié)構(gòu)體與實(shí)例化 143
7.2.2 結(jié)構(gòu)體的語法糖 144
7.2.3 結(jié)構(gòu)體是值類型 145
7.2.4 結(jié)構(gòu)體的深拷貝和淺拷貝 147
7.2.5 結(jié)構(gòu)體作為函數(shù)的參數(shù)及
返回值 148
7.2.6 匿名結(jié)構(gòu)體和匿名字段 150
7.2.7 結(jié)構(gòu)體嵌套 152
7.3 方法 155
7.3.1 方法的概念 155
7.3.2 基本語法 156
7.3.3 方法和函數(shù) 157
7.3.4 方法繼承 158
7.3.5 方法重寫 159
7.4 接口 160
7.4.1 接口的概念 160
7.4.2 接口的定義與實(shí)現(xiàn) 161
7.4.3 duck typing 162
7.4.4 多態(tài) 164
7.4.5 空接口 166
7.4.6 接口對象轉(zhuǎn)型 167
7.5 本章小結(jié) 170
7.6 習(xí)題 170
第8章 Go語言異常處理 172
8.1 error 172
8.1.1 error接口 172
8.1.2 創(chuàng)建error對象 174
8.1.3 自定義錯誤 175
8.2 defer 177
8.2.1 函數(shù)中使用defer 177
8.2.2 方法中使用defer 178
8.2.3 defer參數(shù) 179
8.2.4 堆棧的推遲 179
8.3 panic和recover機(jī)制 180
8.3.1 panic 180
8.3.2 recover 182
8.4 本章小結(jié) 183
8.5 習(xí)題 183
第9章 Go語言文件I/O操作 185
9.1 文件信息 185
9.1.1 文件概述 185
9.1.2 FileInfo接口 185
9.1.3 文件路徑 188
9.2 文件常規(guī)操作 189
9.2.1 創(chuàng)建目錄 189
9.2.2 創(chuàng)建文件 190
9.2.3 打開和關(guān)閉文件 191
9.2.4 刪除文件 192
9.3 讀寫文件及復(fù)制文件 193
9.3.1 讀取文件 193
9.3.2 寫入文件 194
9.3.3 復(fù)制文件 196
9.4 ioutil包 197
9.4.1 ioutil包核心函數(shù) 197
9.4.2 示例代碼 197
9.5 bufio包 199
9.5.1 緩沖區(qū)的原理 199
9.5.2 bufio.Reader結(jié)構(gòu)體 200
9.5.3 bufio.Writer結(jié)構(gòu)體 201
9.5.4 Scanner 203
9.6 本章小結(jié) 205
9.7 習(xí)題 205
第10章 Go語言網(wǎng)絡(luò)編程 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協(xié)議客戶端實(shí)現(xiàn) 208
10.3 HTTP協(xié)議服務(wù)端實(shí)現(xiàn) 213
10.3.1 啟動Web服務(wù)的幾種方式 213
10.3.2 服務(wù)器端獲取客戶端請求的
數(shù)據(jù) 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轉(zhuǎn)JSON 225
10.5.3 結(jié)構(gòu)體轉(zhuǎn)JSON 226
10.5.4 結(jié)構(gòu)體字段標(biāo)簽 227
10.5.5 匿名字段 228
10.5.6 注意事項(xiàng) 228
10.6 JSON解析 229
10.6.1 JSON轉(zhuǎn)切片 229
10.6.2 JSON轉(zhuǎn)結(jié)構(gòu)體 229
10.6.3 結(jié)構(gòu)體字段標(biāo)簽 230
10.6.4 匿名字段 231
10.7 本章小結(jié) 232
10.8 習(xí)題 232
第11章 Go語言數(shù)據(jù)庫編程 233
11.1 數(shù)據(jù)庫介紹 233
11.2 MySQL數(shù)據(jù)庫的使用 234
11.2.1 服務(wù)啟動和停止MySQL服務(wù) 234
11.2.2 登錄和退出MySQL數(shù)據(jù)庫 236
11.2.3 MySQL數(shù)據(jù)庫基本操作 238
11.3 MySQL數(shù)據(jù)類型 238
11.3.1 數(shù)值類型 238
11.3.2 日期時間類型 239
11.3.3 字符串類型 239
11.4 SQL基礎(chǔ)入門 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數(shù)據(jù)庫 245
11.5.1 安裝MySQL模塊 245
11.5.2 導(dǎo)入包 246
11.5.3 連接數(shù)據(jù)庫 246
11.5.4 增刪改數(shù)據(jù) 246
11.5.5 查詢數(shù)據(jù) 247
11.5.6 示例代碼 248
11.6 本章小結(jié) 253
11.7 習(xí)題 253
第12章 Go語言并發(fā)編程 255
12.1 并發(fā)和并行 255
12.1.1 單道程序與多道程序 255
12.1.2 并發(fā)與并行的區(qū)別 255
12.2 進(jìn)程和線程 256
12.2.1 程序與進(jìn)程 256
12.2.2 進(jìn)程與線程的區(qū)別 256
12.2.3 進(jìn)程與線程的聯(lián)系 256
12.3 Goroutine 257
12.3.1 協(xié)程的概念 257
12.3.2 Go語言中的協(xié)程 257
12.3.3 Coroutine與Goroutine 257
12.3.4 普通函數(shù)創(chuàng)建Goroutine 258
12.3.5 匿名函數(shù)創(chuàng)建Goroutine 260
12.3.6 啟動多個Goroutine 261
12.3.7 調(diào)整并發(fā)的運(yùn)行性能 261
12.4 channel 262
12.4.1 channel的概述 262
12.4.2 創(chuàng)建channel類型 262
12.4.3 使用channel發(fā)送數(shù)據(jù) 263
12.4.4 通過channel接收數(shù)據(jù) 263
12.4.5 阻塞 265
12.4.6 關(guān)閉channel 266
12.4.7 緩沖channel 267
12.4.8 單向channel 270
12.5 time包中與channel相關(guān)的
函數(shù) 271
12.5.1 Timer結(jié)構(gòu)體 271
12.5.2 NewTimer()函數(shù) 272
12.5.3 After()函數(shù) 273
12.6 select分支語句 273
12.6.1 執(zhí)行流程 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 本章小結(jié) 283
12.9 習(xí)題 283
第13章 Go語言密碼學(xué)算法 285
13.1 Hash算法 285
13.1.1 Hash的定義 285
13.1.2 流行的Hash算法 286
13.1.3 Hash與加密解密的區(qū)別 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 非對稱加密算法實(shí)現(xiàn)數(shù)字簽名 299
13.3.3 RSA算法 300
13.3.4 核心代碼 300
13.4 橢圓曲線加密算法和橢圓曲線數(shù)字
簽名算法 304
13.4.1 橢圓曲線加密簡介 304
13.4.2 數(shù)字簽名的概念 305
13.4.3 核心代碼 306
13.5 字符編碼與解碼 308
13.5.1 Base64 308
13.5.2 Base58 309
13.6 本章小結(jié) 311
13.7 習(xí)題 312
第14章 Beego框架項(xiàng)目
實(shí)戰(zhàn) 313
14.1 Beego框架介紹及項(xiàng)目初始化
配置 313
14.1.1 Beego簡介 313
14.1.2 Beego框架的主要特性 313
14.1.3 Beego安裝 314
14.1.4 bee工具的使用 315
14.1.5 創(chuàng)建項(xiàng)目 315
14.1.6 結(jié)構(gòu)分析 317
14.1.7 路由設(shè)置 320
14.2 Elm后臺管理平臺項(xiàng)目介紹 321
14.2.1 項(xiàng)目介紹 321
14.2.2 項(xiàng)目效果展示 321
14.2.3 整體架構(gòu)簡介 322
14.3 數(shù)據(jù)庫配置及ORM映射 323
14.3.1 ORM簡介 323
14.3.2 Beego項(xiàng)目中使用MySQL 323
14.3.3 數(shù)據(jù)導(dǎo)入 325
14.3.4 接口文檔說明 325
14.3.5 模塊開發(fā) 325
14.3.6 數(shù)據(jù)格式封裝 327
14.4 Redis 328
14.4.1 Redis簡介 328
14.4.2 Redis安裝 328
14.4.3 Redis操作與使用 329
14.4.4 項(xiàng)目中使用Redis 330
14.4.5 登錄管理員退出操作 331
14.4.6 文件操作 331
14.4.7 數(shù)據(jù)庫表關(guān)系映射 333
14.5 項(xiàng)目功能完善 334
14.5.1 商戶模塊功能開發(fā) 334
14.5.2 食品模塊功能開發(fā) 336
14.5.3 訂單模塊功能開發(fā) 338
14.5.4 添加數(shù)據(jù)記錄模塊開發(fā) 339
14.6 本章小結(jié) 342
14.7 習(xí)題 342