GO 語言編程從入門到實踐
黃永祥
- 出版商: 清華大學
- 出版日期: 2022-06-01
- 定價: $648
- 售價: 8.5 折 $551
- 語言: 簡體中文
- ISBN: 7302603898
- ISBN-13: 9787302603894
-
相關分類:
Go 程式語言、Web-crawler 網路爬蟲
立即出貨
買這商品的人也買了...
-
$580$493 -
$403Go 語言核心編程
-
$780$616 -
$774$735 -
$480$379 -
$980$774 -
$534$507 -
$880$695 -
$580$435 -
$607Go 語言高級開發與實戰
-
$594$564 -
$680$578 -
$1,200$792 -
$600$474 -
$500$390 -
$1,200$948 -
$520$390 -
$880$695 -
$880$695 -
$654$621 -
$680$537 -
$780$616 -
$580$458 -
$650$507 -
$880$695
相關主題
商品描述
本書是一本來自一線開發者的Go語言編程入門書,深入淺出地講述了Go語言的語法特性和編程實踐,全書分為基礎和項目兩部分,基礎部分主要介紹Go語言開發環境的搭建、基礎語法、數據類型、指針、內置容器、函數、結構體、接口、反射、並發編程、包的應用與管理、目錄與文件管理、時間管理、數據庫編程等,項目部分主要介紹網頁自動化測試程序、網絡爬蟲程序、網絡信息反饋網站的開發實踐,此外,還介紹了Go語言程序的編譯方法。本書各章還提供了近20個動手練習小項目,便於讀者邊學邊練,迅速提升編程技能。 本書通俗易懂,體系完備,註重實踐,適合對Go語言感興趣的各層次讀者使用。
目錄大綱
目 錄
第1章 認識Go語言 1
1.1 Go語言簡介 1
1.2 Go語言的優勢與特性 2
1.3 在Windows下安裝Go 3
1.4 在Linux下安裝Go 6
1.5 在macOS下安裝Go 8
1.6 安裝GoLand 9
1.7 搭建GoLand環境 10
1.8 第一個Go程序“Hello World” 11
1.9 動手練習:編程實現人機交互 12
1.10 小結 14
第2章 基礎語法 15
2.1 關鍵字與標識符 15
2.1.1 關鍵字 15
2.1.2 標識符命名規範 17
2.1.3 空白標識符 18
2.1.4 預聲明標識符 19
2.1.5 導出標識符 21
2.1.6 唯一標識符 22
2.2 變量與常量 22
2.2.1 變量定義與賦值 22
2.2.2 常量與iota 24
2.3 運算符的使用 26
2.3.1 算術運算符 26
2.3.2 關系運算符 27
2.3.3 賦值運算符 28
2.3.4 邏輯運算符 30
2.3.5 位運算符 31
2.3.6 其他運算符 33
2.3.7 運算符優先級 33
2.4 代碼註釋 34
2.5 動手練習:編程實現個人健康評測 35
2.6 小結 36
第3章 數據類型 38
3.1 整型的取值範圍 38
3.2 浮點類型與精度丟失 40
3.3 復數的計算 42
3.4 布爾型的應用 43
3.5 ASCII與Unicode編碼 44
3.6 字符類型 45
3.7 字符串操作 45
3.7.1 字符串與轉義符 46
3.7.2 字符串格式化 47
3.7.3 字符串拼接 49
3.7.4 獲取字符串長度 50
3.7.5 遍歷字符串 51
3.7.6 字符位置與截取 52
3.7.7 字符串分割 53
3.7.8 字符串替換 54
3.8 轉換數據類型 55
3.8.1 整型與浮點型 55
3.8.2 整型與字符串 56
3.8.3 浮點型與字符串 57
3.9 動手練習:編程實現在線客服熱線 59
3.10 小結 61
第4章 流程控制 62
4.1 if的條件判斷 62
4.2 if的多層嵌套 64
4.3 switch的多條件分支 65
4.4 for的循環遍歷 69
4.5 for-range獲取鍵值 70
4.6 break越級終止循環 71
4.7 continue跳過本次循環 72
4.8 goto跳到指定代碼 73
4.9 動手練習:編程實現簡易計算器 74
4.10 小結 77
第5章 指針 78
5.1 指針的概念 78
5.2 指針定義與空指針 79
5.3 指針賦值與取值 81
5.4 切片指針 83
5.5 指針的指針 86
5.6 動手練習:編程實現彩票36選7 87
5.7 小結 90
第6章 內置容器 91
6.1 數組 91
6.1.1 數組定義與操作 91
6.1.2 數組初始化定義 92
6.1.3 多維數組 93
6.2 切片 95
6.2.1 切片定義與操作 95
6.2.2 新增切片元素 97
6.2.3 截取切片元素 98
6.2.4 復制切片 100
6.2.5 切片長度與容量 101
6.3 集合 102
6.3.1 集合定義與操作 102
6.3.2 刪除集合元素 104
6.4 動手練習:編程實現集合與
JSON互換 104
6.5 列表 107
6.5.1 列表定義 107
6.5.2 列表元素操作 108
6.5.3 遍歷列表元素 110
6.6 動手練習:編程實現產品抽樣
檢測 112
6.7 小結 114
第7章 函數 116
7.1 函數定義與調用 116
7.2 不固定參數數量 119
7.3 函數以變量表示 120
7.4 沒有名字的函數 121
7.5 引用外部變量的函數 122
7.6 函數自身調用 123
7.7 動手練習:編程實現創建文件
後綴名 124
7.8 小結 126
第8章 結構體 127
8.1 Go的“面向對象” 127
8.2 結構體定義與實例化 128
8.3 指針方式的實例化 130
8.4 結構體標簽 131
8.5 匿名結構體與匿名成員 133
8.6 結構體嵌套 134
8.7 自定義構造函數 136
8.8 結構體方法:指針與值接收者 138
8.9 動手練習:編程實現結構體與
JSON互換 140
8.10 動手練習:編程實現多鍵索引
查詢數據 142
8.11 小結 145
第9章 接口 147
9.1 接口定義與使用 147
9.2 鴨子類型 150
9.3 多態與工廠函數 152
9.4 接口的自由組合 153
9.5 任意數據類型的空接口 156
9.6 接口的類型斷言 158
9.7 動手練手:編程實現營救村民
游戲 161
9.8 小結 166
第10章 反射 168
10.1 什麽是反射 168
10.2 第一定律:接口變量轉反射
變量 169
10.3 第二定律:反射變量轉接口
變量 170
10.4 第三定律:修改反射變量的值 171
10.5 反射的類型與種類 173
10.6 切片與反射 175
10.7 集合與反射 177
10.8 結構體與反射 180
10.9 指針與反射 187
10.10 函數與反射 190
10.11 動手練習:編程實現對象序列化
處理 192
10.12 小結 193
第11章 並發編程 194
11.1 異步的概念 194
11.2 Goroutine 195
11.3 函數創建Goroutine 197
11.4 匿名函數創建Goroutine 199
11.5 通道 200
11.6 無緩沖通道 202
11.7 帶緩沖通道 204
11.8 關閉通道讀取數據 205
11.9 Select處理多通道 207
11.10 sync同步等待 208
11.11 sync加鎖機制 210
11.12 sync.Map的應用 214
11.13 動手練習:編程模擬餐館經營
場景 219
11.14 小結 221
第12章 語法特性 223
12.1 panic觸發宕機 223
12.2 defer延時執行 224
12.3 recover宕機時恢復執行 225
12.4 值類型、引用類型與深淺拷貝 226
12.5 類型別名與自定義 229
12.6 new和make的區別 231
12.7 泛型的概念與應用 234
12.8 動手練習:編程實現出租車費用
計算 236
12.9 小結 238
第13章 包的應用與管理 239
13.1 常用內置包 239
13.2 包命名與導入 240
13.3 包的重命名 242
13.4 無包名調用 242
13.5 初始化函數init()與空導入 243
13.6 包的自定義與使用 245
13.7 包管理工具go mod 246
13.8 第三方包下載與使用 249
13.9 動手練習:編程實現排序算法 251
13.10 小結 255
第14章 目錄與文件處理 257
14.1 使用os實現系統操作 257
14.2 使用path獲取路徑信息 262
14.3 使用os讀寫文件 267
14.4 使用io/ioutil讀寫文件 270
14.5 使用bufio讀寫文件 272
14.6 使用encoding/csv讀寫CSV文件 275
14.7 使用encoding/json讀寫
JSON文件 278
14.8 第三方包讀寫Excel文件 280
14.9 動手練習:編程實現學生管理
系統 283
14.10 小結 286
第15章 時間處理 287
15.1 時間戳 287
15.2 結構體Time 289
15.3 字符串格式化 290
15.4 時間類型的相互轉換 292
15.5 時間計算操作 293
15.6 延時、超時與定時 297
15.7 動手練習:編程實現個人
備忘錄 300
15.8 小結 302
第16章 數據庫編程 304
16.1 搭建SQLite運行環境 304
16.2 安裝與使用MySQL 306
16.3 安裝與使用MongoDB 309
16.4 安裝與使用Redis 312
16.5 go-sqlite3讀寫SQLite 314
16.6 go-sql-driver/mysql讀寫MySQL 317
16.7 mongo-driver讀寫MongoDB 320
16.8 go-redis讀寫Redis 325
16.9 ORM框架:Gorm 330
16.10 動手練習:編程實現員工管理
系統 335
16.11 小結 337
第17章 Go項目——網頁自動化測試
程序開發 339
17.1 瞭解自動化工具Selenium 339
17.2 安裝Selenium 340
17.3 使用瀏覽器查找元素 342
17.4 瀏覽器配置與啟動 345
17.5 網頁元素定位 349
17.6 網頁元素操作 353
17.7 瀏覽器常用操作 356
17.8 網頁加載等待 358
17.9 iframe與標簽頁切換 360
17.10 Cookie讀寫 363
17.11 動手練習:編程實現爬取
BOSS直聘招聘數據 365
17.12 小結 370
第18章 Go項目——網絡爬蟲程序
開發 372
18.1 HTTP與HTTPS 372
18.2 請求頭 374
18.3 使用瀏覽器分析網站 375
18.4 使用net/http發送請求 377
18.5 轉碼與HTML解析 379
18.6 選擇數據存儲方式 382
18.7 動手練習:編程實現爬取
電影TOP100榜單 383
18.8 小結 388
第19章 Go項目——網絡編程應用 389
19.1 TCP和UDP的區別 389
19.2 創建TCP應用 390
19.3 創建UDP應用 393
19.4 創建HTTP服務應用 396
19.5 httprouter擴展路由 399
19.6 多種響應處理方式 401
19.7 HTML模板引擎 404
19.8 網站項目:信息反饋平臺的開發 410
19.8.1 網站功能需求 410
19.8.2 項目架構設計 411
19.8.3 搭建開發環境 412
19.8.4 定義模型與路由 412
19.8.5 編寫模板文件 415
19.8.6 網站運行與測試 417
19.9 小結 419
第20章 編譯與運行 420
20.1 run與build的區別 420
20.2 單文件編譯 421
20.3 同包多文件編譯 422
20.4 不同包多文件編譯 422
20.5 編譯參數說明 423
20.6 小結 424