Go語言開發實戰(慕課版)

本書為對GO語言感興趣的初學者和愛好者量身定做,從入門到精通。
分享 推薦 0 收藏 0 閱讀 47
千鋒教育 (作者)

關于本書的內容有任何問題,請聯系 李召

1.本書涵蓋Go 語言最精華、最重要的核心特性包括類型系統、接口、并發。
2.本書介紹了其他書沒有的密碼學內容。
3.本書通過當下“最流行”的項目案例帶領讀者從0-1實現技術開發。

內容摘要

本書內容豐富、深入淺出,分為兩大部分,共 14 章。第一部分(第 1 章~第 13 章)帶領讀者進入 Go 語言 的世界,使讀者掌握 Go 語言的特性、基本語法、面向對象編程、異常處理、文件 I/O 操作、網絡編程、數據庫 編程、并發編程等內容,此外還增加了密碼學算法內容;第二部分(第 14 章)通過一個完整的電子商務平臺管 理項目案例帶領讀者實現后端技術開發。通過該項目案例的學習,讀者可掌握 Web 主流框架(Beego)、關系型 數據庫(MySQL)、非關系型數據庫(Redis)等內容。 本書可作為高等院校的教材及教學參考書,也可作為 Go 語言初學者的自學用書,還可作為相關開發人員的參考書。

目錄

第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

讀者評論

趕緊搶沙發哦!

我要評論

作者介紹

千鋒教育 1.采用全程面授高品質、高成本培養模式,教學大綱緊跟企業需求,擁有全國一體化就業保障服務,成為學員信賴的IT職業教育品牌。 2.獲得榮譽包括:中關村移動互聯網產業聯盟副理事長單位、中國軟件協會教育培訓委員會認證一級培訓機構、中關村國際孵化軟件協會授權中關村移動互聯網學院、教育部教育管理信息中心指定移動互聯網實訓基地等。

相關圖書

  • Linux系統管理與服務配置實戰(慕課版)

    千鋒教育

    本書系統地介紹了 Linux 系統管理與服務配置,共分 17 章,包括 Linux 基本操作、用戶管理、文件權...

    ¥49.80
  • 數據分析基礎與案例實戰(基于Excel軟件)

    孫玉娣 顧錦江 裴勇 林雪綱

    本書主要介紹了數據分析的基礎知識和實操過程。全書分為8章,首先從數據分析技術概述入手,介紹了數據分析的基本概念...

    ¥39.80
  • Python基礎與大數據應用

    丁輝 商俊燕 伍轉華 林雪綱

    本書內容安排遵循學生的認知規律,結合Python的特點,將教學內容分為Python基礎及數據分析兩大部分。全書...

    ¥59.80
  • Python數據分析、挖掘與可視化(慕課版)

    董付國

    本書首先簡要地介紹了進行數據分析、挖掘和可視化時,需要了解的Python基礎知識,然后重點介紹了擴展庫nump...

    ¥49.80
  • 計算思維與人工智能基礎

    周勇

    本書是中國高等教育學會高等教育科學研究“十三五”規劃課題主要成果之一,“十三五”江蘇省高等學校重點教材。 本...

    ¥42.00
澳洲幸运10是不是真的